Observable - Observer(java.lang.ClassCastException:[Ljava.lang.Object;不能转换为..)

时间:2016-04-04 05:56:47

标签: observer-pattern observers

我面临的问题是如何隔离来自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个独立部分的指导。

1 个答案:

答案 0 :(得分:1)

以下是我的评论作为答案:)

我猜你的update方法会调用

notifyObservers吗?您将一组对象传递给这些更新方法,并尝试将此数组转换为类型。我认为你应该把它投射到一个对象数组中。应该是Object[] values = (Object[])arg

之类的东西