这是一个 Java 分配问题,可能涉及子类型和泛型。我有一个扩展ArrayList
名为 Rows的类
public class Rows extends ArrayList<List<Thing>> implements List<List<Thing>>{}
我需要在另一个类中返回它,该类有一个返回 a 的方法List<List<Thing>>
,因此我需要这样做以获得所需的返回类型:
private List<List<Thing>> list;
public List<List<Thing>> rows() {
Rows r = (Rows) list;// But this cast does not work at runtime
return (List<List<Thing>>) r;
}
Eclipse 返回的错误java.lang.ClassCastException: java.util.ArrayList
不能转换为 package.Rows。当我的 Rows 类扩展时,我很困惑,ArrayList
我认为它应该能够被转换为它。