Per l'argomento
arg avrei creato prima questa classe:
public class Message {
public String client;
public String author;
public String msg;
public String channel;
void build( String client, String author, String msg, String channel ){
this.client = client;
this.author = author;
this.msg = msg;
this.channel = channel;
}
}
Quindi all'interno di un metodo di una classe che gestisce determinati eventi ho scritto:
public void onMessageReceived(MessageReceivedEvent event){
//.......//
msgObj.build("Client", author, msg, channel);
dEvent.changeMessage(msgObj); // -> Genero l'evento
}
dove
public void changeMessage(Message msg) {
this.message = msg;
setChanged();
notifyObservers(msg);
}
e quindi in
Observer :
static class Event implements Observer {
@Override
public void update(Observable o, Object arg) {
Message msgObj;
msgObj = (Message) arg;
}
Posso fare anche il casting di arg ?(non di Observable)
Chiedo perchè mi da errore
java.lang.ClassCastException: java.lang.String cannot be cast to messages.Message
at messages.Main$Event.update(Main.java:57)
at java.util.Observable.notifyObservers(Observable.java:159)
Cosa c'entra java.lang.String ?
Edit:
vado a vedere il codice di Observable:159