我有一个简单的泛型类,如下所示:
public class Test<T extends Number> {
public void doSomething() {
Test t = new Test();
t.getNumber();
}
public T getNumber() {
T d = new Double("1.5"); // I get an compiler error here!
return d;
}
}
getNumber 方法返回 T(它扩展了 Number)并且在它的实现中它实例化了一个 Double。编译器在行中抛出错误:
T d = new Double("1.5"); // I get an compiler error here!
错误是:
Incompatible types:
[ERROR] found : java.lang.Double
[ERROR] required: T
因为 T 扩展了 Number,所以我希望它能工作。我错过了什么吗?
最佳答案
T 扩展了 Number,但这并不意味着它扩展了 Double。 Double 只是 Number 的已知子类之一。
关于java - 实例化泛型类的子类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5431223/