java支持class Foo<T super X>
,如果不支持,为什么?
其中T是类型参数,X是类型。
答案 0 :(得分:6)
没有。泛型上下文中的super
关键字只能在声明(消费者)变量或某些泛型类型的方法参数(消费者)时与通配符(?
)结合使用。
例如,这些是有效的:
List<? super Something> list = someListReference;
public void methodThatPopulatesAList(List<? super Something> consumer) {
...
list.add(new Something());
...
}
更多信息:
答案 1 :(得分:0)
你可以使用通用声明Foo<? super X>
来实现这样的目标:
List<? super Integer> foo3 = new ArrayList<Object>();
但你不能在课堂宣言中使用它
答案 2 :(得分:0)
对于班级:
class Foo<T extends X>
对象:
Object<? extends X>