1

我的代码如下。我只是在 Eclipse 中有一个警告说“Iterator 是一种原始类型。对泛型类型 Iterator 的引用应该被参数化”。这是什么意思,我该如何正确解决这个问题?

import java.util.Iterator;
import java.util.LinkedList;
import java.util.Queue;


public class EmployeeList 
{
    Queue<Employee> empList = new LinkedList<Employee>();

    Employee find (String nm)
    {
    Iterator it = empList.iterator(); //Iterator is a raw type. References to generic type Iterator<E> should be parameterized
    while(it.hasNext())
    {
        Employee em = (Employee)it.next();
        if(em.name.equals(nm))
        {
            return em;
        }   
    }
    return null;
}
4

1 回答 1

5

添加到迭代器将清除警告,当您将泛型类型添加到迭代器时,您不需要在 next() 调用上显式转换,因为可以保证现在迭代器指向 Employee..

 Iterator<Employee> it = empList.iterator();
    while(it.hasNext())
    {
        Employee em = it.next();
        if(em.name.equals(nm))
        {
            return em;
        }   
    }
于 2012-07-13T16:16:47.183 回答