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