我一直在努力解决java中的addAll方法。但这令我惊讶public void addAll(List<T extends Person> persons)
和public void addAll(List<Person> persons)
到底有什么区别
最佳答案
如果您要询问声明,则不同之处在于addAll(List<T extends Person> persons)
允许带列表的调用仅包含Person的子类。而addAll(List<Person> persons)
将不接受此类参数。由于无法将List<SubclassOfPerson>
分配给List<Parson>
所以:
class Child extends Person {};
List<Child> children = .....
调用
addAll(children)
很有意义,因为任何子代都是Person,但是如果将addAll声明为addAll(LIst<Person> persons)
,则编译器会提出抗议。关于java - 列表Java中的addAll方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29131086/