我有一个用于“模型”类的静态构建器方法,它采用 JSON 字符串并返回模型的 ArrayList。我希望它通常引用模型的构造函数,以便子类可以继承构建器方法。
public class Model
{
protected int id;
public Model(String json) throws JSONException
{
JSONObject jsonObject = new JSONObject(json);
this.id = jsonObject.getInt("id");
}
public static <T extends Model> ArrayList<T> build(String json) throws JSONException
{
JSONArray jsonArray = new JSONArray(json);
ArrayList<T> models = new ArrayList<T>(jsonArray.length());
for(int i = 0; i < jsonArray.length(); i++)
models.add( new T(jsonArray.get(i)) )
return models;
}
}
这是该类的简化实现,相关行是
models.add( new T(jsonArray.get(i)) )
我知道这是不可能的,但我想写一些东西来调用 T 类型的构造函数。我尝试使用 this(),这显然不起作用,因为方法“build”是静态的,我尝试使用反射来确定 T 的类,但不知如何获得它去工作。任何帮助是极大的赞赏。
谢谢,
罗伊