Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/115.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么JVM不允许编译它? 公共类集合测试mpl{ 公共静态void main(字符串[]args){ List ld1=new ArrayList(); ld1.添加(新狗()); ld1.添加(新的Cat()); 植入动物(ld1); } public void addAnimals(List_Java - Fatal编程技术网

Java 为什么JVM不允许编译它? 公共类集合测试mpl{ 公共静态void main(字符串[]args){ List ld1=new ArrayList(); ld1.添加(新狗()); ld1.添加(新的Cat()); 植入动物(ld1); } public void addAnimals(List

Java 为什么JVM不允许编译它? 公共类集合测试mpl{ 公共静态void main(字符串[]args){ List ld1=new ArrayList(); ld1.添加(新狗()); ld1.添加(新的Cat()); 植入动物(ld1); } public void addAnimals(List,java,Java,想想你的addAnimals()方法可以采用什么类型的List。你的泛型表明它是一个List超类型的List的Dog。因此它可能是对象的List 显然,由于它可能是一个列表,那么编译器不能保证列表中的所有内容都是动物列表公共类Dog implements Animalpublic类Cat implements Animalpublic类大象implements Animal列表 public class CollectionTestImpl { public static void m

想想你的
addAnimals()
方法可以采用什么类型的
List
。你的泛型表明它是一个
List
超类型的
List的
Dog
。因此它可能是
对象的
List


显然,由于它可能是一个
列表
,那么编译器不能保证列表中的所有内容都是
动物
列表公共类Dog implements Animalpublic类Cat implements Animalpublic类大象implements Animal
列表
public class CollectionTestImpl {

    public static void main(String[] args){

        List<Animal> ld1 = new ArrayList<Animal>();

        ld1.add(new Dog());
        ld1.add(new Cat());
        impl.addAnimals(ld1 );
}

public void addAnimals(List<? super Dog> animals){
        for (Animal animal : animals){ // this is not allowed compile error  
            System.out.println(animal.checkUp());
        }
    }

}
for (Animal animal : animals)