2013-07-15 2 views
-3

Я новичок в java. Я хочу проверить одну переменную класса для всех экземпляров. если эта переменная не имеет определенного значения во всех экземплярах, я сделаю следующий шаг. но я не могу этого сделать. например в моем коде, если Тип всех instancesses класса Proposition не является «UserModelMatch», я сделаю «продолжить».Найти значение переменной во всех экземплярах класса

Proposition proposition=new Proposition(); 

     for (Proposition proposition:Proposition) 

      if (!proposition.getType().equals("UserModelMatch") { 
        .....do next 
      } 

public class Propositions extends ArrayList<Proposition>{ 
    } 

, но этот код проверки для одного предложения, и если она не содержит типа «UserModelNoMatch» он будет «делать дальше». но во-первых, я хочу проверить все типы для всех предложений, которые они находятся в «предложении», а затем, если есть какой-либо «UserModelMatch», тогда программа propgram сделает следующий шаг.

+0

В Java нет понятия «все экземпляры». Если вам нужно сохранить список всех экземпляров класса, вам нужно сохранить этот список самостоятельно. – bmargulies

+0

И где все экземпляры «Предложения»? – m0skit0

ответ

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 оператор останавливает итерацию родительского цикла.

+0

спасибо большое, я получил ответ, он работает – user2583693

1

Как правило: вам необходимо поддерживать ссылки на экземпляры, которые вы ищете, затем перебирать их и проверять принадлежность. Попытка итерации над классом не работает, как вы думаете.

Кроме того, вам необходимо исправить свой сломанный код.

Proposition proposition=new proposition(); 

Вопросы капитализации. Предложение! = Предложение

for (Proposition proposition:Proposition) 

Не теневые переменные, которые вы только что создали. for (Proposition p: proposition) - это, вероятно, то, что вы хотели написать, хотя, я думаю, вы просто в целом смущены тем, что вы можете перебрать. Вам снова понадобится список экземпляров для итерации, а не только имя типа.

И наконец, используйте вместо ключевого слова instanceof вместо использования отражения.

Смежные вопросы