【发布时间】:2016-07-31 08:23:39
【问题描述】:
查询 - 如果我需要将 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();
【问题讨论】:
-
请发布您的代码,而不是讲故事。 :)
标签: java observer-pattern observers