Java:警告:对泛型类型的引用应参数化

Java:警告:对泛型类型的引用应参数化,java,iterator,Java,Iterator,currentProfile.getFriends()方法返回ArrayList上的迭代器。它按预期工作,但编译器在将其分配给另一个迭代器时会给我一个友好的警告:iterator是原始类型。泛型类型迭代器的引用应参数化 我几乎不知道这意味着什么,能启发我吗?如果我的描述不够清楚,这就是我正在做的Iterator-friendList=currentProfile.getFriends()如果可以,请查看方法getFriends()的签名。那应该是 public Iterator<some

currentProfile.getFriends()
方法返回ArrayList上的迭代器。它按预期工作,但编译器在将其分配给另一个迭代器时会给我一个友好的警告:
iterator是原始类型。泛型类型迭代器的引用应参数化


我几乎不知道这意味着什么,能启发我吗?如果我的描述不够清楚,这就是我正在做的
Iterator-friendList=currentProfile.getFriends()

如果可以,请查看方法getFriends()的签名。那应该是

public Iterator<some type> getFriends()
public迭代器getFriends()
是需要放入迭代器引用中的类型。 例如,如果方法是:

public Iterator<Friend> getFriends()
public迭代器getFriends()
使用:

Iterator-friendList=currentProfile.getFriends();
这意味着您正在将一个设置了泛型类型的对象分配给一个未声明泛型类型的引用

示例:

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();
List List=new ArrayList();
迭代器itr=list.Iterator();//您将在这一行得到警告,因为您没有将迭代器设置为泛型类型。
当你这样做的时候它就会消失
迭代器itr=list.Iterator();

如果代码是这样编译的,会发生什么?
Object
是否用作类型?是的,这是要问的问题,Aaron@Araon:如果您不给出它,我认为在这种情况下没有任何问题,但在少数情况下,代码可能无法在运行时强制转换。看见
`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();