我有三个类(class)
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);
如何创建这个数组列表?
最佳答案
“add”只会添加一个元素(但不是列表)。您想要添加列表中的所有元素,因此需要使用 addAll()
:
List<Animal> animals = new ArrayList<>();
List<Cat> cats = new ArrayList<>();
List<Dog> dogs = new ArrayList<>();
animals.addAll(cats);
animals.addAll(dogs);
关于java - 在 arraylist 内部转换时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50599190/