2012-11-01 79 views
3

currentProfile.getFriends()方法通過ArrayList返回迭代器。它的工作原理雖然如此,但是編譯器在將它分配給另一個迭代器時給了我一個友好的警告:iterator is a raw type. References to generic type Iterator <E> should be parameterizedJava:警告:參考通用類型應參數化

我很少或根本不知道這是什麼意思,謹慎開導我?如果我的描述不夠清楚,這就是我正在做的Iterator friendList = currentProfile.getFriends();

回答

6

如果可以的話,請查看方法getFriends()的簽名。這應該看起來像

public Iterator<some type> getFriends() 

這是您需要放入Iterator引用的類型。 例如,如果該方法是:

public Iterator<Friend> getFriends() 

使用:

Iterator<Friend> friendList = currentProfile.getFriends(); 
3
`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(); 
+0

如果代碼被編譯一樣,反正會發生什麼?是否將'Object'用作類型? –