Проблема, с которой я сталкиваюсь, заключается в том, как отделить данные объекта, поступающие от стороннего API notifyObservers of Observable.
Программа основана на шаблоне Observer, и я могу успешно связать Observer со сторонним API Observable, который запускает метод обновления в Observer.
Код: notifyObservers для Observable:
public void newData(String car,String model,CustFeedBack csFeed){
setChanged();
notifyObservers(new Object[]{car,model,csFeed});
}
В методе обновления наблюдателя я пытаюсь привести arg, чтобы я мог получить каждый из 3 данных в объекте, поступающем от nofifyObservers.
@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
, я полагаю? Вы передаете массив объектов этимupdate
методам и пытаетесь преобразовать этот массив в тип. Я думаю, вы должны вместо этого преобразовать его в массив объектов. Должно быть что-то вродеObject[] values = (Object[])arg
- person Alex   schedule 04.04.2016dataSubject = (DataSubject) arg;
)? Что содержитarg
и какого он типа? Возможно, вы чего-то не ожидаете. - person Alex   schedule 04.04.2016