Estou mexendo pela primeira vez com serialização, pelo que eu entendi (e funcionou) eu persistindo o formulário principal da minha aplicação (desktop) ele salva automáticamente todos is outros objetos que estão sendo utilizados.
Até aí ótimo, consegui salvar e abrir meu programa numa boa.
O problema é que qualquer alteração que eu faça, por exemplo incluir um novo atributo para uma classe, já torna o arquivo salvo incompatível com essa nova versão da aplicação.
Vocês que trabalham com serialização, como lidam com isso? :?
Evite usar serialização se você sabe que a(s) classe(s) a ser(em) serializadas terão de ser alteradas de uma versão para outra da aplicação.
Implementar a interface Externalizable é uma idéia (isso porque você pode limitar os atributos a serem serializados), assim como pôr “transient” em todos os atributos que não devem ser serializados, mas ainda assim pode dar problemas.
Um exemplo clássico de problemas com serialização é o JasperReports; se não me engano, você não pode usar um relatório que foi compilado em uma determinada versão em uma outra versão.