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

时间:2015-11-06 15:14:21

标签: java class arraylist abstract

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

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

1 个答案:

答案 0 :(得分:2)

假设您的具体课程为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()调用中进行显式转换,以便正确执行转换。