我为我的ArrayList
持有人创建了抽象类
public abstract class ArrayHolder {
Gson g = new Gson();
}
使用public class MyHolder extends ArrayHolder {
ArrayList<MyType> myList = new ArrayList<MyType>();
}
我想创建抽象函数来从String
和Type
参数填充这个ArrayList
像这样(String data
是String
中的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());
}
我还没有处理过泛型类型的方法,但是从我所看到的来看,这是对的。