Observable - 观察者(java.lang.ClassCastException:[Ljava.lang.Object;无法转换为..)

Observable - Observer (java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to..)

我面临的问题是如何隔离来自第 3 方的对象数据 API Observable 的 notifyObservers。

该程序是基于观察者模式的&我能够成功link观察者到第3方APIObservable,它触发了观察者中的更新方法。

代码: notifyObservers of Observable

public void newData(String car,String model,CustFeedBack csFeed){
     setChanged();
     notifyObservers(new Object[]{car,model,csFeed});
 }

在 Observer Update 方法中,我试图转换 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 个独立部分的指导。

这是我的评论作为回答:)

update 被你的 notifyObservers 方法调用了,我猜?您正在将一个对象数组传递给那些更新方法,并试图将该数组转换为一个类型。我认为你应该将它转换成一个对象数组。应该是 Object[] values = (Object[])arg