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.
[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?
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.