JAVA领域
<? super Human> 下界通配符
<? extends Human> 上界通配符
所以两者限定的范围都是Human的子类,super只供插入和删除,extends只供读写。详见下边示例。
什么场景使用?(区别)
例如:
List<? extends Human> 只能使用get方法,不能使用add方法,编译过不去
List<? super Human>只能使用add方法,get方法只能付给Object对象
举例:
官方的标准用法,java.util.collection中的copy方法
如何代码实现?
参考上述示例
与T和?的区别
T代表同一种类型
?代表所有类型