Variável serialVersionUID qual valor eu coloco?

13 respostas
rodolfodev

Quando eu serealizo um objeto, eu tenho que declarar uma variável serialVersionUID.
Essa variável tem que ser declarada com valores diferentes para cada objeto?

Grato

13 Respostas

serp

Eu creio que um long que seja único para cada classe.

rodolfodev

Minha duvida é que se ele for único eu vou ter que ter um controle de que número eu já usei.

serp

Não, para cada classe.

P

Vc poder utilizar o utilitario serialver disponivel do sdk

http://java.sun.com/j2se/1.5.0/docs/tooldocs/windows/serialver.html
http://www.javapractices.com/Topic45.cjp

danieldestro

Se estiver usando o Eclipse, ele mesmo gera um número para você.

rodolfodev

Como faço para o eclipse gerar?

danieldestro

Quando você cria uma classe que pede um serialVersionUID, ao lado da definição da classe, ele mostra um warning. Clique lá e ele mostra as opções.

rodolfodev

Valeu não conhecia essa função do eclipse.

P

Desculpa a ignorância, mas para que serve essa variável?

danieldestro

http://www.guj.com.br/posts/list/26252.java
http://java.sun.com/j2se/1.5.0/docs/api/java/io/Serializable.html
http://www.javapractices.com/Topic45.cjp

Guerr

Serve para a máquina virtual saber a versão da classe para quando ela é serializada. Se você não declarar esta variável e receber um objeto da mesma classe de uma aplicação remota (que talvez tenha sido compilado em um momento diferente), pode ser que dê um ClassCastException. Colocando esta variável a máquina virtual reconhece como a mesma classe (mesmo se não for uma versão igual, com um campo a mais por exemplo…).

P

Entendi

Valew

J

Olá,

“public class BaseBean implements Serializable”

Criei a class BaseBean que é serializavel, mas o Eclipse não dá nenhum “Warning” logo não mostra o QuickFix (com o CTRL 1 não aparece nada) que permite gerar automáticamente o “serialVersionUID”.
O que poderá esta a acontecer de errado?
O que fazer para o Eclipse gerar o “serialVersionUID”?

Obrigado.

Jorge Mota

Criado 3 de janeiro de 2007
Ultima resposta 28 de mar. de 2012
Respostas 13
Participantes 7