在类的所有实例中查找变量的值

时间:2013-07-15 13:43:44

标签: java

我是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将执行下一步。

2 个答案:

答案 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关键字而不是使用反射。