Java中的继承。有可能这样做:
List<ParentEntity> loc = Locations,
其中Locations
为List<ChildEntity>
答案 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的任何修改都不会在位置上看到。