Java ArrayList,抽象类返回ArrayList的访问方法

标签 java class arraylist abstract

我有一个包含从抽象类派生的对象的ArrayList,有没有办法返回抽象类类型的数组列表,然后使用多态性能够引用原始对象?

我能想到的唯一方法是创建一个抽象类类型的 ArrayList,然后将原始 ArrayList 中的元素复制到其中,但我不需要副本。

最佳答案

假设您的具体类是 Integer和你的抽象类,Number .

如果您愿意收到 List<Number> 的结果而不是ArrayList<Number> (无论如何,这是一个很好的做法),您可以执行以下操作:

List<Integer> listOfConcrete = new ArrayList<>(); // your actual list
List<Number> listOfAbstract = listOfConcrete.stream()
  .map(n -> (Number) n)
  .collect(Collectors.toList());

您需要在 map() 中进行显式转换调用以便正确执行转换。

关于Java ArrayList,抽象类返回ArrayList的访问方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33569884/

相关文章:

java - 为什么子 JComponent 没有调用 Paint(Graphics g)?

java - 递归和 if-else 语句

java - 如何将旧版本的垃圾收集器添加到新版本的 JRE

java - JTable 和 JScrollPane 问题

c++ - 默认赋值运算符是否对所有成员调用 operator=?

java - 在我调用一个明显不相关的方法后,我的 ArrayList 被清空

Java - 从文件中读取并拆分

python - 使父脚本在调用另一个脚本后立即继续

具有不同成员的 C++ 结构 - 在运行时决定

java - ID 数组列表的用户定义索引