我需要为某些对象实现JSON序列化,并且在与泛型集合集成时遇到了问题.
所有可序列化的类都实现了这个接口(JSONObject来自这个库):
interface JSONSerializable{
public JSONObject dump() throws JSONException //serializes object
public void load(JSONObject obj) throws JSONException //deserializes object
}
Run Code Online (Sandbox Code Playgroud)
基于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
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是:当我从JSONObject加载AwesomeList时,我需要创建它的元素,但这是不可能的,因为java禁止我写
T newItem = …Run Code Online (Sandbox Code Playgroud)