Hi guys I am getting this problem on my console, but only appear sometimes.. not always.. I would like your help if possible, thanks
Error:
Exception in thread "Thread-2" java.lang.ClassCastException: cannot assign instance of java.lang.String to field Element.posElement of type java.awt.Point in instance of Personagem
at java.io.ObjectStreamClass$FieldReflector.setObjFieldValues(Unknown Source)
at java.io.ObjectStreamClass.setObjFieldValues(Unknown Source)
at java.io.ObjectInputStream.defaultReadFields(Unknown Source)
at java.io.ObjectInputStream.readSerialData(Unknown Source)
at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.readArray(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.readArray(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.defaultReadFields(Unknown Source)
at java.io.ObjectInputStream.readSerialData(Unknown Source)
at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.readObject(Unknown Source)
at LaunchCliente$receberDoServidor.run(LaunchCliente.java:332)
and here is my code, when I am trying to read the object :
Object a = inputStream.readObject();
if(a instanceof Mapa){
Mapa novo = (Mapa) a;
if(launchJogo.getListaObstaculos().size() == 0)
launchJogo.setLista(novo.getListaObstaculos());
launchJogo.setListaPers(novo.getListaPersonagens());
launchJogo.setElements(novo.getElements());
launchJogo.getFrame().pack();
}
else if(a instanceof logout){
if(launchJogo != null)
launchJogo.getFrame().dispose();
novo.close();
}
else if(a instanceof updateList){
Vector<String> novo = ((updateList) a).getUpdateList();
if(novo.size() != 0){
if(!nomeUtilizador.isEnabled()){
modeloDaLista.clear();
arrayDeJogos = new Vector<String>(novo);
for (String x : arrayDeJogos) {
modeloDaLista.addElement(x);
}
janela.validate();
}
}
if(novo.size() == 0){
modeloDaLista.clear();
}
}
else if(a instanceof String){
String b = a.toString();
if(b.equals("COLOR:FALSE")){
JOptionPane.showMessageDialog(c, "Essa cor já está em uso no jogo selecionado!" , "Cor já escolhida!",
JOptionPane.WARNING_MESSAGE);
launchJogo = null;
cores.dispose();
janela.setVisible(true);
}
else if(b.equals("CREATE:BUTTONSTART")){
launchJogo.getOptions().showButton(true);
}
else if(b.equals("ACTIVE:BUTTONSTART")){
if(!launchJogo.getOptions().isButtonEnabled()){
launchJogo.getOptions().setBotaoState(true);
}
}
else if(b.equals("COLOR:TRUE")){
cores.dispose();
out.writeObject(new addToAGame(corDoJogador, nomeJogador, jogoSelecionado));
launchJogo = new LaunchJogo(launchCliente, jogoSelecionado, nomeJogador);
}
else if(b.equals("LAUNCH:GAME")){
if(launchJogo != null)
launchJogo.addPersonagemListener();
}
}
} catch (ClassNotFoundException e) {
System.out.println("Class not found!");
} catch (IOException e) {
this.interrupt();
}
Thanks alot in advance guys, I would appreciate some help