se metto solo sfidante o this.sfidante è lo stesso perchè sfifante è l'istanza di "GiocatoreUmano" (estensione di Giocatore) ed è un attributo di partita. Io voglio salvare l'istanza Sfidante e il Credito di Partita.
Se non metto Sfidante.getClass sembra che nel file ci ha salvato tutta la parte grafica. le label i pannelli della Gui, etc.
Inivece con .getClass salva solo gli attributi di Giocatore, ma non carica, perchè da un problema di casting...
ora ti faccio vedere
codice:public class Partita implements Serializable { //Attributi private static final String PATH_SAVE = "settemezzo/sav/"; private CardClient mazzoCarte; private Giocatore Sfidante;<- da salvare private Giocatore Banco; private int Credito;<- da salvare private int Puntata; private Interfaccia video; //Metodi ... ... ... ... .. // Salva lo stato della partita corrente // @param nomeFile attributo di tipo String public void salva (String nomeFile) { try{ FileOutputStream outFile = new FileOutputStream(PATH_SAVE + nomeFile + ".sav"); ObjectOutputStream outStream = new ObjectOutputStream(outFile); outStream.writeObject(Sfidante); outStream.writeObject(new Integer(this.Credito)); outStream.close(); video.stampaMsg("Partita Salvata con successo!"); }catch(IOException exc){ video.stampaMsg("Errore nell'I/O. Partita non Salvata!"); } } // Carica lo stato di una partita precedentemente salvata // @param nomeFile attributo di tipo String public void carica (String nomeFile) { try{ FileInputStream inFile = new FileInputStream(PATH_SAVE + nomeFile + ".sav"); ObjectInputStream inStream = new ObjectInputStream(inFile); try{ this.Sfidante = (Giocatore)inStream.readObject(); ( oppure this.Sfidante = (Giocatore)inStream.readObject().getClass(); ) this.Credito = ((Integer)inStream.readObject()).intValue(); }catch(ClassNotFoundException exc){ video.stampaMsg("Classi non trovate!"); System.exit(1); } inStream.close(); }catch(IOException exc){ video.stampaMsg("Errore nell'I/O. Partita non Caricata!"); System.exit(1); } video.stampaMsg("Partita Caricata con successo!"); }