查询 - 如果我需要将Observer类中的信息用于其他类中的方法,我想知道如何继续编写代码。
观察者以Object []的形式从Observable接收更新。我能够将输出打印到控制台上,但不清楚如何将这些信息提供给其他类。
我尝试在Observer中创建一个getInfo方法,该方法返回Object []&然后在我需要信息的类中实例化Observer,调用getInfo方法。但我得到一个空指针异常。
代码 - 观察者
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从观察者那里尝试拉信息,而是使用观察者将推送到需要的位置。