gpt4 book ai didi

java - public void addAll(List animals) 和 public void addAll(List animals) 有什么区别?

转载 作者:搜寻专家 更新时间:2023-11-01 01:25:27 28 4
gpt4 key购买 nike

我对此有点困惑,所以希望能提供一些说明。

public <T extends Animal> void addAll(List<T> animals)

对比

public void addAll(List<Animal> animals)

最佳答案

区别在于 List 中的参数类型。将被该方法接受。

在第一种方法中,T可以是Animal或任何子类,所以 addAll将接受 List<Animal> , 一个 List<Dog> , 或 List<Cat> .注意这个签名等同于

public void addAll(List<? extends Animal> animals)

当您不需要 Animal 的确切类型时在方法的主体中。

在第二种方法中,您已指定类型参数必须是 Animal . Java 的泛型是不变的,因此 Animal 没有子类型将被允许​​。此方法将接受 List<Animal> , 但不是 List<Dog>List<Cat> .

关于java - public <T extends Animal> void addAll(List<T> animals) 和 public void addAll(List<Animal> animals) 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35023977/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com