Ola Pessoal do GUJ
Atualmente estou utilizando ObjectInputStream e ObjectOutputStream para salvar e ler objetos em arquivos, mas isso me traz um certo problema as vezes.
Se eu salvo um objeto em um arquivo hoje, e futuramente eu modifico algo na classe do objeto eu não consigo ler mais este arquivo, vou dar um exemplo besta abaixo:
Tenho um Objeto que possui um atributo do tipo “Enum”, salvei este Objeto em um arquivo.
// classe do Objeto
public class Usuario implements Serializable {
private NivelDeAcesso nivelDeAcesso = NivelDeAcesso.Supervisor:
}
// classe enum
public enum NivelAcesso {
Desativado,
Supervisor,
Proponente,
Usuario
}
Alguns dias depois eu modifiquei a classe do “Enum” e coincidentemente foi removida a propriedade que era utilizada no Objeto que havia salvo no arquivo anteriormente.
// classe enum modificado
public enum NivelAcesso {
Desativado,
Gerente,
Proponente
}
Resultado, quando fui abrir este arquivo novamente me deu a seguinte exceção:
java.lang.IllegalArgumentException: No enum const class NivelAcesso.Supervisor
Tentei trabalhar com algumas APIs que salvam Objetos em arquivo XML, mas os dados ficam muito expostos e não achei legal.
Alguém tem algum sugestão ou conhece alguma API legal pra salvar Objeto em arquivo e que facilite na solução deste tipo de problema?
Obrigado
Douglas Junior