【发布时间】:2019-11-24 00:35:16
【问题描述】:
ArrayList 是否可以返回超类对象的列表?
例如:
B 类扩展 A 类。
我有一个 B 类的 ArrayList。
如何使用 Java 8 返回 A 类对象的 ArrayList?
例如:
class ClassA {}
class ClassB extends ClassA{}
我有一个名为 classBList 的 ClassB 列表。我想获取 ClassA 对象的列表。
List <ClassA> classAList = new ArrayList <ClassA> (classBList);
但我仍然在 classAList 中获得 ClassB。
请帮忙。谢谢。
【问题讨论】:
-
你已经有一个了; B 对象的列表是 A 对象的列表,因为所有 B 对象都是 A 对象。也许您可以编辑问题以更具体地说明您想要实现的目标,最好是使用代码示例。
-
已编辑。有可能吗?
-
除非
ClassA implements List<ClassA>然后ClassA肯定不能分配给List<ClassA>。但这还不足以让我弄清楚你想要做什么;请写一个最小可重复的例子。 stackoverflow.com/help/minimal-reproducible-example -
只要您不希望客户端在调用您正在处理的方法后将某些内容添加到列表中,您可以将其声明为
public List<? extends ClassA> body(),它允许返回List<ClassB>. -
我用代码编辑过。请帮忙。谢谢。