如何将值从子列表设置为父列表

时间:2012-11-23 15:48:37

标签: java

Java中的继承。有可能这样做:

List<ParentEntity> loc = Locations, 

其中LocationsList<ChildEntity>

2 个答案:

答案 0 :(得分:5)

不,你不能那样做。泛型中不允许多态性。

但是你可以这样做: -

List<? extends ParentEntity> loc = new ArrayList<ChildEntity>();

哦,是的,除了null之外,您将无法在该分配后向列表中添加任何新项目。这是你必须承受的限制。

因此,您可以先创建ArrayList<ChildEntity>,填写它,然后将其分配给the LHS

答案 1 :(得分:4)

正如@Rohit Jain所说,他的回答是有限的。

你可以有这样的解决方法:

List<ParentEntity> loc = new ArrayList<ParentEntity>()
loc.addAll(locations);

这一次,限制是您丢失了List实现的初始类型。而且,更重要的是,对于loc的任何修改都不会在位置上看到。