2016-05-21 12 views
1

他のクラスから変数の更新値を取得しようとしています。変数の値は更新されていますが、それ自身のクラスに対してのみです。参照によって値にアクセスしようとしている別のクラスは、まだ古い値を取得しています。更新のためにclass1に変数private booleanが存在するとします。 class2は、getter methodすることにより、このような何かclass1boolean変数にアクセスしている間:変数stateの値がここActionEventJava変数の更新された値を取得するには?

CLASS 2 CODE: 

class B { 
    void go() { 
     A a = new A(); 
     while(true) { 
      if(a.getState()) { 
       //CODE 
      } 
     } 
    } 
} 

で更新し続け、私は常に取得しています。ここ

CLASS 1 CODE: 

class A { 
    private boolean state; 
    boolean getState() { 
     return state; 
    } 
} 

をで値が更新されていますが、の元の値がclass Bに変わります。では、別のクラス参照から変数の更新された値を取得するにはどうすればよいですか?

EDIT: それはちょっと奇妙だが、この方法は、何らかの形での変数の更新を呼ばれたときやリフレッシュ。このように:

CLASS 2 CODE: 

class B { 
    void go() { 
     A a = new A(); 
     while(true) { 
      System.out.println(a.getState()); 
      if(a.getState()) { 
       //CODE 
      } 
     } 
    } 
} 

だけSystem.out.println(a.getState());を添加した後、我々は、更新された値を取得しています。説明してください!

答えて

2

すべてのループ反復でAの新しいインスタンスを作成します。 AをA =新しいA()に移動します。

class B { 
    void go() { 
     A a = new A(); 
     while(true) { 
      if(a.getState()) { 
       //CODE 
      } 
     } 
    } 
} 
+0

ようにする必要がありジュスト任意のクラスであなたのbolleanを使用することができます。最大1つのライン! –

+0

次に、このコードを正確に使用している場合は、デフォルトの状態値をtrueに設定する必要があります。このコードは決して// CODEに到達しないためです。プライベートブール状態=真; –

+0

ご覧ください、私は質問を編集しました。あなたのところに来て、私は、 '状態 'が' ActionEvent'によって 'true'にならない限り、//コードがトリガーされることを望ましくありません。 –

0

あなたはそれが助けにはならなかった、それ静的

CLASS 1 CODE: 

class A { 
    private boolean state; 
     public static boolean getState() { 
      return state; 
    } 
} 

と第二のクラスの

CLASS 2 CODE: 

class B { 
    void go() { 
     while(true) { 
      if(A.getState == //true or false//) { 
       //CODE 
      } 
     } 
    } 
} 
関連する問題