InstallationComponentSetup

InstallationComponentSetup

我正在尝试编写代码来遍历InstallationComponentSetup类型的集合:

java.util.Collection<InstallationComponentSetup> components= context.getInstallationComponents();
Iterator it = components.iterator();
while (it.hasNext())
{
    if (((InstallationComponentSetup)it).getName() == "ACQ")
    {
         return true;
    }
}


if语句中的强制转换失败,但是我真的不知道为什么(我是C ++程序员!)。

如果有人可以向我指出我在做什么错,我将不胜感激。

最佳答案

itIterator,而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;

09-10 23:44