Итак, у меня есть этот метод:
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 extends MyItemBaseClass
):
List<MyItemBaseClass> list =
collectSelectedItems(lsm, new ArrayList<MyItemBaseClass>());
но я получаю синтаксическую ошибку на super
:
Синтаксическая ошибка в токене "super", ожидается
Что дает? Могу ли я исправить это?
Object
является надстройкой надMyItemClass
, поэтомуCollection
может бытьCollection<Object>
. Не думаю, что здесь можно использоватьsuper
. - person Peter Lawrey   schedule 06.12.2011super
, а неextends
- person Jason S   schedule 06.12.2011