for (Iterator i = guitars.iterator(); i.hasNext(); )
    {
        Guitar guitar = (Guitar)i.next();
        if (guitar.getSerialNumber().equals(serialNumber))
        {
            return guitar;
        }
    }


我不明白(Guitar)i.next()在做什么。好像Guitar传递给函数(...)一样,但是我正在猜测,没有任何线索。为这种结构制定搜索查询也不容易,因此请原谅可能重复的问题。

最佳答案

这是一个强制性声明。原因是i.next()返回一个Object,但是您知道它将是一个Guitar,因此您告诉编译器:


  “嘿,编译器,我知道这将是Guitar,请相信我。”


整齐的方法是使用泛型。您基本上都在做同样的事情,但是更干净:

for (Iterator<Guitar> i = guitars.iterator(); i.hasNext(); )
{
     Guitar guitar = i.next();
     //...
}

07-28 02:03