我需要为某些对象实现 JSON 序列化,并且在与通用集合集成时遇到了问题。
所有可序列化的类都实现这个接口(JSONObject来自this图书馆):
interface JSONSerializable{
public JSONObject dump() throws JSONException //serializes object
public void load(JSONObject obj) throws JSONException //deserializes object
}
我的基于 java.util.list 的集合的代码看起来或多或少像这样:
class AwesomeList<T extends JSONSerializable> implements JSONSerializable{
private LinkedList<T> items = new LinkedList<T>();
...
...
public JSONObject dump() throws JSONException {
JSONObject result = new JSONObject();
JSONArray a = new JSONArray();
for(T i : items){
a.put(i.dump());
}
result.put("items", a);
return result;
}
public void load(JSONObject obj) throws JSONException{
//here is my problem
}
}
我的问题是:当我从 JSON 对象加载 Awesome List 时,我需要创建它的元素,但这是不可能的,因为 java 禁止我编写
T newItem = new T();
newItem.load(obj);
我应该如何修改完成这项任务的方法?
您与这个图书馆有联系吗?谷歌Gson很受欢迎。我自己没有将它与泛型一起使用,但他们的首页说 Gson 认为对泛型的支持非常重要。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)