我是java的新手。我想为所有实例检查一个类的一个变量。如果此变量在所有实例中都没有特定值,我将执行下一步。但我不能这样做。例如在我的代码中,如果类命题的所有实例的类型不是“UserModelMatch”,我将执行“继续”。
Proposition proposition=new Proposition();
for (Proposition proposition:Proposition)
if (!proposition.getType().equals("UserModelMatch") {
.....do next
}
public class Propositions extends ArrayList<Proposition>{
}
但是此代码检查一个命题,如果它不包含Type“UserModelNoMatch” 它将“做下一步”。但首先,我想检查所有命题的所有类型,它们在“命题”中,然后如果有任何“UserModelMatch”,则te propgram将执行下一步。
答案 0 :(得分:2)
伪代码中需要的算法:
boolean areAllEquals = true
for each proposition do
if type != "the value" then
areAllEquals = false
break
endif
endfor
if areAllEquals then
// all types are equals
else
// there is at least two different types
endif
break
语句停止父循环迭代。
答案 1 :(得分:1)
通常:您需要维护对您正在查找的实例的引用,然后迭代它们并检查成员身份。试图迭代一个类并不像你想象的那样工作。
此外,您需要修复损坏的代码。
Proposition proposition=new proposition();
资本化很重要。命题!=命题
for (Proposition proposition:Proposition)
不要隐藏刚刚创建的变量。 for (Proposition p: proposition)
可能是你打算写的,尽管我认为你只是对你可以迭代的内容感到困惑。您还需要有一个要迭代的实例列表,而不仅仅是类型的名称。
最后,使用instanceof
关键字而不是使用反射。