java - 在 arraylist 内部转换时出错

标签 java arraylist

我有三个类(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/

相关文章:

java - 如何在 Thymeleaf 3.0.x 中的自定义方言的处理器中获取标签正文

Java 2-D ArrayList : Adding Values.

java - 在 while 循环内将 ArrayList 添加到 TreeMap

java - 对其中包含数字的 String ArrayList 进行排序的最佳方法

arraylist - 收集整数列表(List <Integer>)以与Java 8 Stream API映射

java - 对数组元素的奇数索引求和

Java - 避免代码中的长 SQL 查询

java - long 的 Java 按位表示会有所不同吗?

java - 使用 java 编写 .ics iCal 文件

java - java中的Collections.swap()交换方法中的所有内容