Java中的继承。是否可以这样做:
List<ParentEntity> loc = Locations,
Locations
在哪里List<ChildEntity>
不,你不能那样做。泛型中不允许多态。
但是你可以这样做: -
List<? extends ParentEntity> loc = new ArrayList<ChildEntity>();
哦,是的,您将无法在该分配之后将任何新项目添加到您的列表中,除了null
. 这是你必须忍受的限制。
因此,您可以先创建您的ArrayList<ChildEntity>
,填充它,然后将其分配给the LHS
。
正如@Rohit Jain 所说,他的回答是有限的。
你可以有这样的解决方法:
List<ParentEntity> loc = new ArrayList<ParentEntity>()
loc.addAll(locations);
这一次,限制是您丢失了 List 实现的初始类型。而且,更重要的是,对 loc 的任何修改都不会在位置上看到。