Variável serialVersionUID qual valor eu coloco?

13 respostas
R

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

S

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

R

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

S

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

D

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

R

Como faço para o eclipse gerar?

D

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.

R

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

P

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

D

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

G

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