Ciao a tutti,

sono un principiante della programmazione java e mi sono imbattuto in un problema che vi espongo. Devo salvare su file un hashmap che ha per chiave una String e per valore una classe personalizzata. Ho trovato numerosi post su quest'argomento ma non riesco a capire dove stia il mio errore. La classe da me creata implementa l'interfaccia Serializable e contiene solo tipi String e int (ho provato anche con Integer ma senza successo).

Ho provato ad aggiungere i metodi readObject e writeObject (vuoti) con il risultato che non ottengo più l'errore ma non viene salvato il valore, viene cioè salvato ("Test_1", null) (non mi sembra sia la soluzione corretta e quindi l'ho rimossa).

Qualcuno sarebbe così gentile da dirmi dove sto sbagliando?

Di seguito il codice:

codice:
import java.io.FileOutputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.util.HashMap;

public class SalvaOggetti {

	class Persona implements Serializable {
		String nome;
		String cognome;
		String indirizzo;
		int età;
		
		public Persona() {
			
		}
		public Persona(String nome, String cognome, String indirizzo, int età) {
			this.nome = nome;
			this.cognome = cognome;
			this.indirizzo = indirizzo;
			this.età = età;
		}
	}
	
	HashMap<String, Persona> hashmap_persona = new HashMap<String, Persona>();
	ObjectOutputStream oos;
	
	public SalvaOggetti() {
		hashmap_persona.put("Test_1", new Persona("Mario", "Rossi", "Casa sua", 30));
		
		try {
			oos = new ObjectOutputStream(new FileOutputStream("prova.txt"));
			oos.writeObject(hashmap_persona);
			oos.flush();
			oos.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	public static void main(String[] args) {
		new SalvaOggetti();
	}
}