I need to implement JSON serialization for some objects, and I've encountered a problem when it came to integration with generic collections. 

All serializable classes implement this interface (JSONObject comes from [this](http://json.org/java/) library):

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

```

Code for my collection based on java.util.list looks more or less like this:

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

```

My problem is: When I load AwesomeList from JSONObject, I need to create its elements but it's impossible since java forbids me to write 

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

```

How should I modify my approach to this task?