java - 实例化泛型类的子类

标签 java generics

我有一个简单的泛型类,如下所示:

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/

相关文章:

c# - 返回基于 int 值的类类型

java - jackson /GSON : Apply Map to POJO

java - 从多重选择中设置多个 javabean 属性

java - 扫描仪类跳过空白

c# - 通过自定义属性获取枚举(通用)

generics - 有没有一种方法可以实现与泛型相结合的 `as`语义?

c# - 将泛型传递给扩展方法

java - 单击提交后填充 jframe

java - 加入三个深度表时为"MultipleBagFetchException: cannot simultaneously fetch multiple bags"

java - Spring JpaRepository 使用通用实体