Java: Предупреждение: ссылки на универсальный тип должны быть параметризованы.

currentProfile.getFriends() возвращает Iterator над ArrayList. Он работает так, как предполагалось, но компилятор выдает мне дружеское предупреждение при назначении его другому итератору: iterator is a raw type. References to generic type Iterator <E> should be parameterized

Я мало или вообще не понимаю, что это значит, не могли бы вы меня просветить? если мое описание было недостаточно ясным, вот что я делаю Iterator friendList = currentProfile.getFriends();


person Tom Lilletveit    schedule 01.11.2012    source источник


Ответы (2)


Пожалуйста, посмотрите на сигнатуру метода getFriends(), если можете. Это должно выглядеть так

public Iterator<some type> getFriends()

это тип, который вам нужно поместить в ссылку на итератор. Например, если метод:

public Iterator<Friend> getFriends()

использовать:

Iterator<Friend> friendList = currentProfile.getFriends(); 
person IllegalArgumentException    schedule 01.11.2012

`Java: Warning: References to generic type should be parameterized` 

это означает, что вы назначаете объект с набором универсального типа ссылке, которая не имеет объявленного универсального типа.

Пример:

List<String> list = new ArrayList<String>();
Iterator itr=   list.iterator(); // you'd get that warning on this line, as you are not making iterator a generic type.

it'd disappear when you do this

 Iterator<String> itr = list.iterator();
person PermGenError    schedule 01.11.2012
comment
Что произойдет, если код будет скомпилирован таким образом? Используется ли Object в качестве типа? - person Aaron Franke; 11.12.2017
comment
да, это вопрос, чтобы задать, Аарон - person Abhishek Singh; 18.03.2018
comment
@Araon: Если вы его не дадите, я не вижу никаких проблем в этом случае, но в некоторых случаях код может не выполняться во время выполнения. См. stackoverflow.com/questions/20790770/ - person Abhishek Singh; 18.03.2018