Pessoal, boa noite. Curiosidade. O instrutor diz que o Java cria por "baixo dos panos" uma Serialização para cada classe. Existe alguma forma de mostrar esse UID através de um método? Tipo
System.out.println(serialVersionUID());
Pessoal, boa noite. Curiosidade. O instrutor diz que o Java cria por "baixo dos panos" uma Serialização para cada classe. Existe alguma forma de mostrar esse UID através de um método? Tipo
System.out.println(serialVersionUID());
Boa noite, Leandro! Como vai?
Quando vc implementa a interface Serializable
na classe, vc vai ver que o Eclipse vai colocar um sublinhado amarelo no nome da classe informando que é bom declarar um atributo estático chamado serialVersionUID
. Se vc clicar no nome da classe e depois apertar ctrl + 1
, vai aparecer umas opções dentre as quais uma delas será para gerar o tal serialVersionUID
com o valor definido pelo Java por baixo dos panos (a opção se chama "Add generated serial version ID"). Depois que vc selecionar essa opção, o atributo será criado e vc poderá usá-lo para imprimir o valor, como vc deseja!
Pegou a ideia? Qualquer coisa é só falar!
Grande abraço e bons estudos!
Fala Gabriel, muito obrigado pelo seu comentário. Realmente com a ajuda do Eclipse foi possível obter o numero serial da classe. Mas como o eclipse conseguiu pegar esse ID? Pelo que entendi tem mais coisas rolando por debaixo dos panos. rsrs
O Eclipse tem integração com a ferramenta que faz a geração do ID, por isso ele consegue pegar esse valor.
Oi Leandro,
A ferramenta citada pelo Gabriel, também pode ser chamada pelo terminal usando o comando serialver
(desde que se tenha o JDK instalado). Por exemplo:
Para uma classe serializável chamada Tarefa
:
import java.io.*;
public class Tarefa implements Serializable {
private String nome;
}
Após compilá-la, podemos consultar a versão executando o comando:
serialver Tarefa
Tarefa: private static final long serialVersionUID = -1834452870050448575L;
Abraços!!
Obrigado pelas explicações Gabriel e Leonardo.