2

Java中的继承。是否可以这样做:

List<ParentEntity> loc = Locations, 

Locations在哪里List<ChildEntity>

4

2 回答 2

5

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

但是你可以这样做: -

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

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

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

于 2012-11-23T15:49:52.833 回答
4

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

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

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

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

于 2012-11-23T15:53:09.130 回答