Android-使用Java泛型返回派生类的ArrayList

Android-使用Java泛型返回派生类的ArrayList,java,android,Java,Android,我有一个android应用程序,它有一个业务对象(我们称之为超类),它有几个派生类(我们称它们为DerviedClassA、DerivedClassB等)。每个对象都有一个构造函数,它接受一个具有多行的游标对象,并根据游标中的当前行分配适当的属性 然后我使用BO方法返回派生类的ArrayList,如下所示: public static ArrayList<DerivedClassA> getDerivedClassAList(Cursor data) { ArrayList&

我有一个android应用程序,它有一个业务对象(我们称之为超类),它有几个派生类(我们称它们为DerviedClassA、DerivedClassB等)。每个对象都有一个构造函数,它接受一个具有多行的游标对象,并根据游标中的当前行分配适当的属性

然后我使用BO方法返回派生类的ArrayList,如下所示:

public static ArrayList<DerivedClassA> getDerivedClassAList(Cursor data)
{
    ArrayList<DerivedClassA> list = new ArrayList<DerivedClassA>();

    for(int i=0;i<data.getCount();i++)
    {
        data.moveToPosition(i);
        DerivedClassA wev = new DerivedClassA(data);
        list.add(wev);
    }

    data.close();
    return list;
}
publicstaticarraylistgetderivedClassList(游标数据)
{
ArrayList=新建ArrayList();
对于(inti=0;i是的,它是

public static <T extends SuperClass> ArrayList<T extends SuperClass> getDerivedClassList(Cursor data)
{
    ArrayList<T> list = new ArrayList<T>();

    for(int i=0;i<data.getCount();i++)
    {
        data.moveToPosition(i);
        T wev = new T(data);
        list.add(wev);
    }

    data.close();
    return list;
}
publicstaticarraylistgetderivedclasslist(游标数据)
{
ArrayList=新建ArrayList();

for(int i=0;iNot quite.在上面应该是ArrayList。您没有两次指定边界。这几乎可以正常工作…Eclipse在t wev=new t(data)行上给我一个错误…“无法实例化类型t”,您必须首先在
超类
上声明构造函数。
public static ArrayList<T extends SuperClass> getDerivedClassList(Cursor data)
{
    ArrayList<T> list = new ArrayList<T>();

    for(int i=0;i<data.getCount();i++)
    {
        data.moveToPosition(i);
        T wev = new T(data);
        list.add(wev);
    }

    data.close();
    return list;
}
public static <T extends SuperClass> ArrayList<T extends SuperClass> getDerivedClassList(Cursor data)
{
    ArrayList<T> list = new ArrayList<T>();

    for(int i=0;i<data.getCount();i++)
    {
        data.moveToPosition(i);
        T wev = new T(data);
        list.add(wev);
    }

    data.close();
    return list;
}