Warning: Add default serial version ID

Pessoal, há pouco tempo eu instalei o Eclipse que dá suporte a java 5.0. Algumas de minhas classes ficaram com o seguinte warning:

  • Add defaul serial version ID
  • Add generate serial version ID

Isso tem a ver com o java 5.0 ou é coisa do Eclipse? Qual seria o propósito de uma serial version ID?

EDITADO:
Achei a opção no Eclipse que desliga esse warning, mas gostaria de saber por que criar um serial version ID.

Este campo faz parte da especificação da interface de marcação Serializable para que o framework de persistência da JVM identifique de forma única um objeto. Dah uma bisoiada lah:
http://java.sun.com/j2se/1.5.0/docs/api/java/io/Serializable.html

dsiviotti,

Caso queira inibir este aviso, vá em Window > Preferences > Java > Compiler ? Erros/Warning > J2SE 5.0 Options e desmarque lá dentro

Márcio

Precisa dizer que nao eh uma boa ideia desabilitar warnings?

aproveitando o topico!! qual o versao do Eclipse que suporta o java 5(que eh o 1.5_xx certo??), mas qual eh a versao do eclipse!!

Obrigado!!

A mais recente, ueh.

fredferrao,

O Eclipse suporta java5 a partir da versão 3.1

cv,

Concorde em deixar os warnings. Você pode me ajudar no seguinte warning ?

public Object getValueAt(int aRow, int aColumn) { Vector row = (Vector)rows.elementAt(aRow); Object saida = null; switch (aColumn){ case POSICAO : return (Integer)row.elementAt(aColumn); case SELECIONADO : return (Boolean)row.elementAt(aColumn); case NUMERO_LOTE: case NOME_DIVULGACAO: return (String)row.elementAt(aColumn); case DATA_VENCIMENTO: String aux = (String)row.elementAt(aColumn); return aux.substring(6,8) + "/" + aux.substring(4,6) + "/" + aux.substring(0,4); default: return row.elementAt(aColumn); } }

Severity Description Resource In Folder Location Creation Time 1 Type safety: The method elementAt(int) belongs to the raw type Vector. References to generic type Vector<E> should be parameterized TabelaDeExtrato.java Extrato/src/model line 60 3 de Junho de 2005 10:07:38

Diz respeito a generics, e estou recebendo uma série deles nos meu tableModels.

Obrigado,

Márcio

[quote=marcioa1]Concorde em deixar os warnings. Você pode me ajudar no seguinte warning ?

public Object getValueAt(int aRow, int aColumn) { Vector row = (Vector)rows.elementAt(aRow); Object saida = null; switch (aColumn){ case POSICAO : return (Integer)row.elementAt(aColumn); case SELECIONADO : return (Boolean)row.elementAt(aColumn); case NUMERO_LOTE: case NOME_DIVULGACAO: return (String)row.elementAt(aColumn); case DATA_VENCIMENTO: String aux = (String)row.elementAt(aColumn); return aux.substring(6,8) + "/" + aux.substring(4,6) + "/" + aux.substring(0,4); default: return row.elementAt(aColumn); } }
…[/quote]

De fato, tem a ver com os generics. Note que na linha 2 vc pega um Vector, que nao eh parametrizado:

Vector row = (Vector)rows.elementAt(aRow);

Pra se livrar desse warning, o melhor jeito eh modificar o seu cast:

Vector<Object> row = (Vector<Object>)rows.elementAt(aRow); Object saida = null; switch (aColumn){ case POSICAO : return row.elementAt(aColumn); case SELECIONADO : return row.elementAt(aColumn); case NUMERO_LOTE: case NOME_DIVULGACAO: return row.elementAt(aColumn); case DATA_VENCIMENTO: String aux = (String)row.elementAt(aColumn); return aux.substring(6,8) + "/" + aux.substring(4,6) + "/" + aux.substring(0,4); default: return row.elementAt(aColumn); }

Ah, e os casts nos returns eram desnecessarios - vc ta retornando Object de qqer jeito - alias, tem um warning no Eclipse pra isso tb. Voce habilitou o dito? :wink:

Valeu marcio!! to baixando a versao: eclipse-SDK-3.1RC1-win32

cv,

Aundo coloquei <Object> , começõu a dar outro warning.

Agora estou com o seguinte c~´odigo ( sem warnings )

public Object getValueAt(int aRow, int aColumn) { Vector<?> row = (Vector<?>)rows.elementAt(aRow); return row.elementAt(aColumn); }

Mas o seguinte método está dando outro warning

public void setValueAt(Object o, int aRow, int aColumn){ Vector<Object> row = (Vector<Object>)rows.elementAt(aRow); row.setElementAt(o,aColumn); }

Severity Description Resource In Folder Location Creation Time 1 Type safety: The cast from Object to Vector<Object> is actually checking against the erased type Vector ModeloTabela.java Protocolo Dinâmico/src/modelo line 67 3 de Junho de 2005 10:35:00
se coloco ? no lugar de Object, levo um erro.

Tem alguma sugestão de como consertar isto ?

Obrigado,

Márcio