我面临的问题是如何隔离来自Observable的第三方API notifyObservers的对象数据。
该程序基于Observer模式&我能够成功地将Observer链接到第三方API Observable,它正在Observer中触发Update方法。
代码: notifyObservers Observable :public void newData(String car,String model,CustFeedBack csFeed){
setChanged();
notifyObservers(new Object[]{car,model,csFeed});
}
在观察者更新方法中我尝试强制转换 arg ,以便我可以从对象中获取来自nofifyObservers的3个数据
@Override
public void update(Observable observable, Object arg) {
dataSubject = (DataSubject) arg;
System.out.println(dataSubject.length);
display();
}
我得到一个java.lang.ClassCastException:[Ljava.lang.Object;不能投...希望我面对的问题是明确的等待有关如何将对象数据细分为3个独立部分的指导。
答案 0 :(得分:1)
以下是我的评论作为答案:)
我猜你的update
方法会调用 notifyObservers
吗?您将一组对象传递给这些更新方法,并尝试将此数组转换为类型。我认为你应该把它投射到一个对象数组中。应该是Object[] values = (Object[])arg