【发布时间】:2011-10-05 23:01:20
【问题描述】:
我有两个名为“BaseCatalog”和“City”的类。 “BaseCatalog”是“City”的父类,换句话说,“City”扩展了“BaseCatalog”类。
我有一个名为“getBaseCatalogObjects”的方法,它接受一个参数 catalogType 和 返回 BaseCatalog 对象的列表。根据给定的类型,List 的类型可能不同,但它始终包含扩展主 BaseCatalog 类的对象。
因为这个方法是一个泛型方法,它总是产生一个包含 BaseCatalog 对象的 List。但是在这种情况下,我确信列表中的每个 BaseCatalog 实例也是一个 City 对象:
List<BaseCatalog> baseCatalogObjects = getBaseCatalogObjects(CatalogType.CITY);
我想要做的是将这个“baseCatalogObjects”列表转换为一个名为“cityObjects”的列表,类似于:
List<City> cityObjects = (List<City>) baseCatalogObjects;
在不创建新的 java.util.List 实例并迭代列表“baseCatalogobjects”的情况下,是否有可能或有任何有效的方法来进行这样的转换?
【问题讨论】:
标签: java arraylist type-conversion extends