我一直在努力解决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/

10-11 06:42