【发布时间】:2014-01-17 01:21:41
【问题描述】:
我想在我的服务对象中包含一种从 json 字符串反序列化对象列表的通用方法。
以下是我的第一次尝试。
public abstract class AbstractService<T>{
public abstract Class<T> getClazz();
public List<T> deserialize(final String json){
Gson gson = gsonFactory.create();
Type listType = new TypeToken<List<T>>() {}.getType();
List<T> entityList = gson.fromJson(json, listType);
return entityList;
}
}
但是由于类型擦除,T in: new TypeToken<List<T>>() {}.getType(); 在运行时不可用。因此,Gson 不会返回我的实体列表,而是返回 Gson Map 对象列表。
注意,我确实可以通过调用 getClazz() 在运行时访问 T 的具体类。虽然我不确定如何使用它来指示 Gson 给我发回某种类型的列表。
有没有人知道让它工作的方法?
任何帮助将不胜感激。
【问题讨论】:
-
可以传参数吗?