Java抽象类函数泛型



我为我的ArrayList持有人创建了抽象类

public abstract class ArrayHolder {
    Gson g = new Gson();
}
使用

public class MyHolder extends ArrayHolder {
    ArrayList<MyType> myList = new ArrayList<MyType>();
}

我想创建抽象函数来从StringType参数填充这个ArrayList

像这样(String dataString中的JSON): 这个函数应该重写为

public ArrayList<T> arrayType(String data, T type){
    return g.fromJson(data, new TypeToken<ArrayList<type>(){}.getType());
}

在子类

中使用
public void fillData(String data){
    myList = arrayType(data, MyType.class);
}

我怎样才能正确地做这件事?

谢谢

试试这个…

public abstract class ArrayHolder {
    Gson g = new Gson();
    public <T> ArrayList<T> arrayType(String data){
        return g.fromJson(data, TypeToken.get(new ArrayList<T>().getClass()));
    }
}
使用

public class MyCollection extends ArrayHolder {
    private ArrayList<MyType> collection;
    public void setData(String data){
        collection = arrayType(data);
    }
}
public <T> ArrayList<T> arrayType(String data){
    return g.fromJson(data, new TypeToken<ArrayList<T>>(){}.getType());
}

这样做:

public <T> ArrayList<T> arrayType(String data){
     return g.fromJson(data, new TypeToken<ArrayList<T>>(){}.getType());
}

我还没有处理过泛型类型的方法,但是从我所看到的来看,这是对的。

最新更新