Java 集合复制方法混乱(超级和扩展通配符)

Java 集合复制方法混乱(超级和扩展通配符),java,generics,collections,extends,super,Java,Generics,Collections,Extends,Super,我目前正在学习java泛型作为编程类的一部分,在理解Collections类中的静态复制方法时遇到问题: publicstaticvoidcopy(列表)实际上我不认为有什么区别,但如果有,可能是当你将ints的类型更改为List时发生的情况。我找不到一个使用列表不起作用的用例。我想他们只是应用了PEC的原理,尽管这里不是绝对需要它(除非我遗漏了什么)。这也没什么坏处。我明白了,谢谢你们两位澄清了这一点。在我不久前写的这篇文章中,我最终精确地解释了这个特定的场景。它可能不会完全回答你的问题,但幸

我目前正在学习java泛型作为编程类的一部分,在理解Collections类中的静态复制方法时遇到问题:


publicstaticvoidcopy(列表)实际上我不认为有什么区别,但如果有,可能是当你将
ints
的类型更改为
List时发生的情况。我找不到一个使用列表不起作用的用例。我想他们只是应用了PEC的原理,尽管这里不是绝对需要它(除非我遗漏了什么)。这也没什么坏处。我明白了,谢谢你们两位澄清了这一点。在我不久前写的这篇文章中,我最终精确地解释了这个特定的场景。它可能不会完全回答你的问题,但幸运的是,它将帮助你进行调查。
public class Colls <T> {
    public static <T> void copy(List<? super T> dest, List<T> src){
        for(int i=0; i<src.size(); i++){
            dest.add(src.get(i));
            }
         }
}
public class Main{
    public static void main(String[] args){

    List<Number> nums = new ArrayList<Number>();
    List<Integer> ints = Arrays.asList(1,2,3,4,5);

    Colls.copy(nums, ints)
    }
}