Considerem o “linhas” dessa classe. É uma lista de objetos T, que serão informados pela subclasse.
public abstract class TableModelPadrao<T extends Persistente> extends AbstractTableModel {
protected String[] colunas;
protected List<T> linhas;
public TableModelPadrao() {
setColunas(criarColunas());
setLinhas(criarLinhas());
}
protected abstract String[] criarColunas();
protected abstract List<T> criarLinhas();
....
public List<T> getLinhas() {
return linhas;
}
public void setLinhas(List<T> linhas) {
this.linhas = linhas;
}
}
Essa subclasse informa a classe dos objetos da lista. Será Orcamento. Orcamento possui os métodos getData e getValorTotal. Está dando erro na tentativa de executar o método getData e getValorTotal. O erro é: “The method getData() is undefined for the type Object”. Pelo visto, o linhas.get() não está retornando um objeto do tipo Orcamento.
O que eu devo fazer para resolver isso?
public class TableModelOrcamento<Orcamento> extends TableModelPadrao {
public Object getValueAt(int rowIndex, int columnIndex) {
switch (columnIndex) {
case 0: return linhas.get(rowIndex).getData();
case 1: return linhas.get(rowIndex).getValorTotal();
default: return null;
}
}
....
}