Java 在arraylist内部强制转换时出错
我有三节课Java 在arraylist内部强制转换时出错,java,arraylist,Java,Arraylist,我有三节课 public abstract class Animal { ... } public abstract class Cat extends Animal { ... } public abstract class Dog extends Animal { ... } 如果我想创建一个包含猫和狗的动物数组列表,它会给出运行时投射错误 List<Animal> animals = new ArrayList<>(); List<
public abstract class Animal {
...
}
public abstract class Cat extends Animal {
...
}
public abstract class Dog extends Animal {
...
}
如果我想创建一个包含猫和狗的动物数组列表,它会给出运行时投射错误
List<Animal> animals = new ArrayList<>();
List<Cat> cats = new ArrayList<>();
List<Dog> dogs = new ArrayList<>();
animals.add((Animal) cats);
animals.add((Animal) dogs);
List animals=new ArrayList();
列表猫=新的ArrayList();
List dogs=new ArrayList();
动物。添加((动物)猫);
动物。添加((动物)狗);
如何创建此阵列列表?您的角色设置错误。在适当的条件下,您试图分配一些不兼容的内容
animals.add((Animal) cats);
当你说(动物)猫
时,你试图将列表
投射到动物
,这是错误的
如果它将
cats
中的所有元素添加到animals
中,则可以使用animals进行添加。addAll(cats)
您的角色设置错误。在适当的条件下,您试图分配一些不兼容的内容
animals.add((Animal) cats);
当你说(动物)猫
时,你试图将列表
投射到动物
,这是错误的
如果要将cats
中的所有元素添加到animals
中,您可以使用animals进行添加。addAll(cats)
“add”只添加一个元素(而不是列表)。您希望在列表中添加所有元素,因此需要使用addAll()
:
List animals=new ArrayList();
列表猫=新的ArrayList();
List dogs=new ArrayList();
动物。addAll(猫);
动物。addAll(狗);
“添加”只添加一个元素(但不是列表)。您希望在列表中添加所有元素,因此需要使用addAll()
:
List animals=new ArrayList();
列表猫=新的ArrayList();
List dogs=new ArrayList();
动物。addAll(猫);
动物。addAll(狗);
您正试图添加一个列表
作为列表
的一个元素。你的意思是说你使用了addAll
?你正在将列表
投射到动物
。列表
不是动物
。您正在尝试将列表
添加为列表
的元素。你的意思是说你使用了addAll
?你正在将列表
投射到动物
。列表
不是动物
。