Reflection é uma característica da plataforma Java que permite obter informações de forma introspectiva, ou seja de sim mesmo, em tempo de execução. Com esse recurso, uma classe consegue ler a si mesmo e obter informações que podem ser usadas pelo desenvolvedor. Nesse exemplo esse recurso foi usado para implementar o método getValueAt da AbstractTableModel.
Primeiramente foi necessário criar uma Array de Strings para armazenar o nome dos campos da classe respeitando-se maiusculas e minusculas e uma lista tipada para armazenar as entidades:
private String[] fields = {"id","nome","endereco"};
private List<Entidade> myList = new ArrayList<Entidade>();
Em seguida foi implementado o método getValueAt:
@Override
public Object getValueAt(int row, int col) {
Entidade e = (Entidade)myList.get(row);
try {
final Field field=e.getClass().getDeclaredField(fields[col]);
if (field!=null){
field.setAccessible(true);
return field.get(e);
}
} catch (SecurityException e1) {
return "Erro SE";
} catch (NoSuchFieldException e1) {
return "Erro NE";
} catch (IllegalArgumentException e1) {
return "Erro IAr";
} catch (IllegalAccessException e1) {
return "Erro IAc";
}
return "";
}
Uma atenção especial deve ser data a importação da classe Field. Deve ser usada a localizada no pacote indicado abaixo:
import java.lang.reflect.Field;
Seria isso.
Claudir Pereira dos Santos
Matelândia, 03/07/2012.
Nenhum comentário:
Postar um comentário