我一直在研究java中的addAll方法。但这让我感到奇怪
到底有什么区别public void addAll(List<T extends Person> persons)
and public void addAll(List<Person> persons)
如果您询问的是声明,那么区别在于addAll(List<T extends Person> persons)
允许使用仅包含 Person 子类的列表进行调用。虽然addAll(List<Person> persons)
不会接受此类参数。作为List<SubclassOfPerson>
不能分配给List<Parson>
so:
class Child extends Person {};
List<Child> children = .....
calling addAll(children)
这是有道理的,因为任何孩子都是一个人,但如果 addAll 被声明为addAll(LIst<Person> persons)
,编译器会抗议。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)