Что не так с listNum.add (num) в коде ниже; (Справочно http://docs.oracle.com/javase/tutorial/java/generics/lowerBounded.html)Generics Java super
дает ошибку компиляции, как метод надстройку (захват # 1-о? Супер Long) в списке типов не применяется для аргументов (номер)
public class GenericSuper {
List<? super Long> listNum = new LinkedList <Number>();
List<? super ExportException> listExp= new LinkedList<RemoteException>();
public List<? super ExportException> addList()
{
Number num = 10;
listNum.add(num);
RemoteException rme = new RemoteException();
listExp.add(rme);
return rme;
}
}
Почему вы не просто объявляете 'listExp' как' List 'и' listNum' как 'List '? Я подозреваю, что вы должны вернуться к тому, что означают ограниченные подстановочные знаки. –
Я хочу хранить все суперклассы long в listNum и ExportException в listExp. И, следовательно, после прочтения ссылки, как показано выше в запросе. Я попытался использовать нижнюю ограниченную дикую карту. Пожалуйста, предложите правильное понимание со ссылками и примером. –
Но 'List super Long> 'означает" список какого-либо типа Long или суперкласс, но я не знаю, что "- это означает, что вы не можете добавить к нему' Number'. (Возможно, он был создан как «ArrayList», который не должен содержать недолго.) –