第一个问题已修复here,但它附带了另一个问题,我更愿意创建一个新帖子。
我有一个CustomList<T extends A>
,会与Class A1
和Class A2
一起使用,两者都会延伸Class A
。
我有Class B
,其中包含CustomList
s:
public Class B
{
CustomList<A1> listA1 = new CustomList<A1>();
public CustomList<A1> getListA1(){ return listA1;}
}
每当我尝试
时for(A1 obj : myBClass.getListA1())
{
/*Do something*/
}
我得到Type mismatch : cannot convert from element type A to A1.
因为getListA1()
返回CustomList<A1>
,我无法得到它。我想这可能是因为CustomList<T extends A>
。
答案 0 :(得分:6)
首先:
class CustomList<T extends A> extends ArrayList<T>
第二
class A {
public boolean getCustomBoolean() {
return true;
}
}
第三
class A1 extends A {
}
结果:
CustomList<A1> customList = new CustomList<A1>();
customList.add(new A1());
for (A1 obj: customList) {
System.out.println(obj.getCustomBoolean());
}
打印:真实