我正在尝试编写代码来遍历InstallationComponentSetup
类型的集合:
java.util.Collection<InstallationComponentSetup> components= context.getInstallationComponents();
Iterator it = components.iterator();
while (it.hasNext())
{
if (((InstallationComponentSetup)it).getName() == "ACQ")
{
return true;
}
}
if
语句中的强制转换失败,但是我真的不知道为什么(我是C ++程序员!)。如果有人可以向我指出我在做什么错,我将不胜感激。
最佳答案
it
是Iterator
,而it.next()
是InstallationComponentSetup
。
该错误是由于无法将Iterator
强制转换为InstallationComponentSetup
所致。
此外,如果您parametrize Iterator
适当,甚至不需要强制转换:
Iterator<InstallationComponentSetup> it = components.iterator();
最后,请勿将字符串与
a == b
之类的内容进行比较,而应使用a.equals(b)
。有关更多详细信息,请参见"How do I compare strings in Java"。如果您只想遍历集合,则可能还需要查看
for
-each循环。您的代码可以重写为:for (InstallationComponentSetup component : components)
if (component.getName().equals("ACQ"))
return true;