Общие методы Java: super нельзя использовать?

Итак, у меня есть этот метод:

protected void collectSelectedItems(ListSelectionModel lsm, 
         Collection<? super MyItemClass> result) {
    for (int i : GUI.getSelectionIndices(lsm))
    {
        result.add(getItemByDisplayIndex(i));
    }
}

Я хотел бы вернуть коллекцию вместо использования метода void:

protected <T super MyItemClass> Collection<T> 
  collectSelectedItems(ListSelectionModel lsm, Collection<T> result) {
    for (int i : GUI.getSelectionIndices(lsm))
    {
        result.add(getItemByDisplayIndex(i));
    }
    return result;
}

с намерением сделать что-то вроде этого (где MyItemClass расширяет MyItemBaseClass ):

List<MyItemBaseClass> list = 
   collectSelectedItems(lsm, new ArrayList<MyItemBaseClass>());

но я получаю синтаксическую ошибку на super :

Синтаксическая ошибка токена "super",, ожидаемая

Что дает? Могу я это исправить?

10
задан Jeff Axelrod 5 May 2012 в 12:35
поделиться