CustomList <t extends =“”a =“”>类型不匹配</t>

时间:2014-04-23 09:30:27

标签: java android arraylist extends type-mismatch

第一个问题已修复here,但它附带了另一个问题,我更愿意创建一个新帖子。

我有一个CustomList<T extends A>,会与Class A1Class 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>

1 个答案:

答案 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());
}

打印:真实