2个回答
展开全部
如果知道<? 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>); //可以
<? 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>); //可以
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
? 代表泛型。 super A 表示是A的子类。 连在一块就是 A子类的泛型
好像 super这个不能用吧。一般是 extends 。
好像 super这个不能用吧。一般是 extends 。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询