【发布时间】:2015-11-29 23:26:04
【问题描述】:
我声明了包含ClassA元素的列表:
public class SuperList<E> extends ArrayList<ClassA> {
public SuperList<E> getSomeElements() {
SuperList<E> resultList = new SuperList<>();
// creating result list
return resultList;
}
}
我有一堂课ClassB:
public class ClassB extends ClassA {
// class definition
}
最后我有 SuperList 和 ClassB 的实例。我想通过 getSomeElements() 方法从中获取元素并对其进行迭代:
SuperList<ClassB> bigList;
SuperList<ClassB> elements = bigList.getSomeElements();
for(ClassB element : elements){
// do something
}
但 IntelIJ 是这样说的:
不兼容的类型。要求:B 级。找到:A 类。
我可以正常做吗?
【问题讨论】:
标签: java list generics inheritance extends