【发布时间】:2012-01-16 06:02:05
【问题描述】:
我为我的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);
}
我怎样才能正确地做到这一点?
谢谢
【问题讨论】:
-
所以如果我理解正确:你有一个超类 C,你希望它通过 C 中的抽象方法填充子类 D 中的 ArrayList?
-
@RyanAmos 对。但不直接填充,只返回正确类型的ArrayList
-
啊,那就用 T.new ArrayList
。您不需要 T 类型参数。
标签: java class polymorphism gson abstract