2016-04-10 7 views
0

質問 - Observerクラスの情報を他のクラスのメソッドで利用できるようにする必要がある場合、どのようにコードに進むべきかを知りたい。Java Observer Pattern - 他のクラスのメソッドに情報を渡す

オブザーバはObservableからオブジェクト[]の形式で更新を受け取ります。私は出力をコンソールに出力できますが、この情報を他のクラスで利用できるようにする方法については明確ではありません。

ObserverにObject [] &を返すgetInfoメソッドを作成し、getInfoメソッドを呼び出して、情報が必要なクラスのObserverをインスタンス化しようとしました。しかし、私はNULLポインタの例外を取得しています。

コード - オブザーバー

private String car; 
private CarModel carModel; 

public broadcastObserver(Observable observable){ 
    observable.addObserver(this); 
} 

@Override 
public void update(Observable observable, Object arg) { 
    Object[] subjectMessage = (Object[])arg; 
int i = 0; 
    for (Object o : subjectMessage) { 
     switch (i){ 
      case 0: 
       car = (String)o; 
       i++; 
       break; 
      case 1: 
       carModel = (CarModel) o; 
       i++; 
       break; 
     } 
    } 
} 
public Object[] getObserverFeed(){ 
    Object[] observerFeed = new Object[]{car,carModel}; 
    return observerFeed; 
} 

コード - クラスメソッドの情報が

broadcastObserver bO = new broadcastObserver(); 

Object[] feed = bO.getObserverFeed(); 
+0

話をする代わりにコードを投稿してください。 :) –

答えて

1

反転データの流れを必要とされている。代わりに、観測者からプルに情報をしようとしますget-methodsを使用してオブザーバをに移動し、必要な場所にをプッシュします。

+0

ありがとう、それを達成する方法の方向性で私を指摘することができます。私はそれについてかなり調べていましたが、今のところ理解できませんでした。謝罪は全く新しいことです。 – iCoder

+0

本質的には、あなたが 'bO.getObserverFeed()'で何をしたいのであれば、それを 'update'メソッドに移してください。 – Joni

関連する問題