【发布时间】:2012-07-24 11:49:14
【问题描述】:
一个抽象类被声明为
myClass<E extends Number, D extends Number>
子类是
final mySubClass<Double,Integer>
final myOtherSubclass<Double,Double>
假设有一个子类没有第一种类型的参数化过程,我的意思是,类型将被忽略。有什么办法可以将其设置为 Void、Null 或其他什么?
final mySubClassThatDontUseFirstType<Void,Integer>
例如,如果它内部有一个内部 List
【问题讨论】:
-
Everything
extends Object和 BTW 写extends Object正是出于这个原因,是多余的。你的抽象类不能像你说的那样声明,因为类声明中不接受通配符。这个问题对我来说只是半清楚。 -
对不起,你是正确的通配符,我改变了它。这是一个例子,我可以使用比 Object 更抽象的术语。我不确定 Void 扩展了对象,这就是我问的原因,因为我看到人们在其他地方使用像 Void 这样的东西
-
Void只不过是另一个类,它不是Number的子类。这就是为什么这行不通。
标签: java generics inheritance types void