java里面的 <?super A>是什么意思?

java里面的 <?super A>是什么意思?

第1个回答  推荐于2017-11-27
如果知道<? extends A>的用法的话,<? super A>的用法就不难理解了。
<? extends A>表示类型必须是A或者A的子类
<? super A>表示类型必须是A或者A的超类

如:
已知Object是Test的父类,TestChild是Test的子类,那么
对于:

public void tde(List<? super Test> list) {
}
tde(new ArrayList<Test>()); //可以
tde(new ArrayList<Object>()); //可以
tde(new ArrayLIst<TestChild>); //编译错误
对于:
public void tde(List<? extends Test> list) {
}
tde(new ArrayList<Test>()); //可以
tde(new ArrayList<Object>()); //编译错误
tde(new ArrayLIst<TestChild>); //可以本回答被提问者和网友采纳
第2个回答  2015-01-04
? 代表泛型。 super A 表示是A的子类。 连在一块就是 A子类的泛型
好像 super这个不能用吧。一般是 extends 。
相似回答