我们有以下代码:

class MyClass<T>{
...
}
class MyExtendedClass extends MyClass<T>{//Compile error
...
}


我试图创建非通用类,它是通用类的子类型。为什么禁止它?

最佳答案

您应该在那里放置一个具体的类:

class MyExtendedClass extends MyClass<String>


或将通用类添加到您的子类中

class MyExtendedClass<T> extends MyClass<T>


现在使用它的方式,当您声明T的实例时,您期望的是MyExtendedClass的类型,如下所示:

MyExtendedClass x = new MyExtendedClass();


在这种情况下,没有办法告诉T应该是什么!

10-08 09:33