Why is the following code not allowed?

```
class MyClass {
    List<? extends Something> list;
    <T extends Something> List<T> myFunc(T t) {
        list = new ArrayList<T>(); // ok
        list.add(t); // error
        return list; // error
    }
}

```

And how do you fix the code while maintaining the same? i.e. the class member `list` only accepts objects that is subclass of `Something` and the same for `myFunc()`?