4
respostas

Versão da classe com SerialVersionUID

Quando faz uma alteração incompatível tem mudar o SerialVersionUID para indicar que a classe está em uma outra versão mas depois fazer essa mudança como faço para recuperar o objeto serializado na versão anterior?

4 respostas

Oi Augusto

A ideia do serialVersionUID é verificar se o remetente e o receptor de um objeto serializado carregaram classes para esse objeto que são compatíveis com relação à serialização. Se o receptor carregou uma classe para o objeto que possui um serialVersionUID diferente daquele da classe do remetente correspondente, então a desserialização resultará em um InvalidClassException. Uma vez alterado o serialVersionUID, você conseguira desserializar apenas objetos nessa versão. Os objetos com a versão antiga estarão em uma versão também mais antiga da sua aplicação.

Isso eu entendi, o que eu quero saber é como recuperar o objeto que tá na versão antiga se a classe foi alterada.

Você teria que ter um objeto com o serialVersionUID na versão que você quer ler

Acho que você quis dizer classe em vez de objeto mas nesse caso iria ter mais de uma definição para mesma classe.