O que é serialVersionUID?  XML
Índice dos Fóruns » Java Básico
Autor Mensagem
furutani
JWizard
[Avatar]

Membro desde: 11/10/2003 23:58:51
Mensagens: 2995
Localização: Iacri-SP e São Paulo-SP
Offline

Olá GUJ
Começei a usar o Eclipse 3.1 RC2 e na maioria das classes que eu fiz aparece esse warning:
The serializable class CadastroAluno does not declare a static final serialVersionUID field of type
long

O que é e pra que serve?

Até mais,
Roberto Jundi Furutani


Sun Certified Business Component Developer 1.3
Sun Certified Web Component Developer
Sun Certified Java Programmer
SAP Certified Development Associate - ABAP with SAP NetWeaver 7.0

[WWW]
thingol
Moderador

Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline

http://www.javapractices.com/Topic45.cjp tem um artigo muito bom sobre a importância de definir serialVersionUID. O artigo infelizmente não diz que esse ID, de preferência, deve ser único para cada classe (ou seja, use o gerador de UIDs que vem no Eclipse).

This message was edited 1 time. Last update was at 20/06/2005 14:08:25

[WWW]
maikonaraujo
JavaChild
[Avatar]

Membro desde: 19/01/2005 05:20:25
Mensagens: 108
Localização: Rio de Janeiro - RJ
Offline

Serve para vc manter controle da evolução de seus objetos serialidos....

Exemplo:
Vc salva um objeto em um arquivo... meses depois vc tem que adicionar um método e ou atributo na sua classe. Quando vc tenta deserializar o objeto que vc salvou, vc naum consegue mais. Se vc manter o serialVersionUID este erro naum ocorre e vc consegue deserializar objetos que foram modificados...

How many people can read hex if only you and dead people can read hex? 57006

In a world without fences and walls, who needs Gates and Windows?

The box said 'Requires Windows 95 or better'. So I installed LINUX
[MSN]
Lich King
JavaChild
[Avatar]

Membro desde: 22/12/2004 01:05:18
Mensagens: 137
Offline

mas pq esse precisaria usar isso c/ um JFrame por exemplo?

Evite tráfego inútil na internet: não repasse correntes/spams
http://www.quatrocantos.com/LENDAS/

Rock na veia! Metal rulez!
pcalcado
Moderador
[Avatar]

Membro desde: 08/03/2004 17:19:35
Mensagens: 5174
Localização: Sydney - Australia
Offline

Oi,

Qualquer classe Serializável devria ter esse valor (porque se ela é serializavel, ela deveria ser serializada me algum momento ), por isso o eclipse te pentelha com o warning. Cabe a você saber quando ignorar ou não.


Phillip Calçado "Shoes"
http://fragmental.tw/
http://blog.fragmental.com.br/
"It is unfortunate that much of what is called 'object-oriented programming today is simply old style programming with fancier constructs." - Alan Kay
[Email] [WWW] [Yahoo!] [MSN]
Guilherme Silveira
Administrador

Membro desde: 14/08/2002 10:09:26
Mensagens: 1096
Localização: Sao Paulo
Offline

toda classe serializavel possui um serialversionuid. duas opcoes:

- a virtual machine gera um para voce
- voce seta o seu (atraves do serialVersionUID)

se voce quer ter controle da serializacao e se preocupa com controle de versoes de suas classes serializaveis tera que entender direito como ele funciona, porque e correr atras de manter suas versoes da mesma classe compativeis (ou nao)

se voce nao quer tere controle de serializacao (como o caso do JFrame teu) simplesmente adiciona um supresswarnings (baixa o eclipse 3.1 final e da CTRL+1 que ele adiciona para voce)

thingol, se nao me engano, a regra do serialVersionUid nao diz nada sobre classes diferentes.
somente que a mesma classe em versoes incompativeis deve ter serialVersionUid diferentes.

-------------------------------------------------------
Guilherme Silveirahttp://blog.caelum.com.br
[Email] [WWW] [MSN]
jPscoralicK
JavaChild
[Avatar]

Membro desde: 05/05/2007 09:54:44
Mensagens: 128
Localização: Juiz de Fora, MG
Offline

esse tópico é antigo, estou ressucitando-o pelo fato de ainda não ter entendi muito a função de um serialVersionUID e com qual valor devo setá-lo.

[ ]

João Paulo Scoralick
Ciência da Computação - UFJF/MG
http://anouterview.blogspot.com
http://escape13.blogspot.com

[WWW] [MSN] [ICQ]
Paulo Silveira
Administrador
[Avatar]

Membro desde: 07/08/2002 18:38:50
Mensagens: 4204
Localização: São Paulo
Offline

E eu vou tomar a liberdade de ressucitar isso aqui, porque fiz esse post porque cai nesse topico!

Segue o post
http://blog.caelum.com.br/2008/04/01/entendendo-o-serialversionuid/

http://blog.caelum.com.br twitter: @paulo_caelum


[Email] [WWW]
 
Índice dos Fóruns » Java Básico
Ir para:   
Powered by JForum 2.1.8 © JForum Team