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();
//...
}