Сериализация JSON в Java - передовой опыт

Мне нужно реализовать сериализацию JSON для некоторых объектов, и я столкнулся с проблемой, когда дело дошло до интеграции с универсальными коллекциями.

Все сериализуемые классы реализуют этот интерфейс (JSONObject происходит из этой библиотеки):

interface JSONSerializable{
    public JSONObject dump() throws JSONException //serializes object
    public void load(JSONObject obj) throws JSONException //deserializes object
}

Код моей коллекции на основе java.util.list выглядит примерно так:

class AwesomeList implements JSONSerializable{
    private LinkedList items = new LinkedList();
    ...
    ...

    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
    }
}

Моя проблема: когда я загружаю AwesomeList из JSONObject, мне нужно создать его элементы, но это невозможно, поскольку Java запрещает мне писать

T newItem = new T();
newItem.load(obj);

Как мне изменить свой подход к этой задаче?

26
задан KCH 24 September 2011 в 15:51
поделиться