java - 如何从父类(super class)类型的ArrayList中获取某个子类型的对象?

标签 java inheritance arraylist

我有 3 节课。

  1. 动物(父类(super class))
  2. Dog(扩展 Animal 的子类)
  3. Cat(扩展 Animal 的子类)

我有一个 ArrayList,其中包含所有动物,无论是狗还是猫。 有没有办法从 ArrayList 中只获取 Dog 对象?

最佳答案

首先,我们过滤Dog的实例,然后安全地映射Dog,最后收集List 中:

List<Dog> dogs = animals.stream()
        .filter(Dog::isInstance)
        .map(Dog::cast)
        .collect(Collectors.toList());

关于java - 如何从父类(super class)类型的ArrayList中获取某个子类型的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59328459/

相关文章:

java - 无法在android 9中获取pdf路径

c# - 继承的、未覆盖的字段上的多列索引

Android,如何将 ArrayList<myObject> 放入 Intent 中?

java - 通过 org.json 将字符串转换为 ArrayList

java - Uber API 未经授权访问问题

java - Popup设置为wrap_content后如何获取其高度?

C++ 继承 : Can't access private element of base class

c++ - 多重继承来自多重继承

java - 将 JSON 值从 Integer 转换为 String

java - 为什么无法使用 Apache POI 设置行和列的值?