Reflection

1 resposta
A

Oi, estou iniciando em java e tenho um form de pesquisa genérico, posso usa-lo para pesquisar cliente, funcionario qq coisa ao clicar no botao passo a query que devera rodar e o nome das colunas a serem exibidas, na hora de adicionar os dados retornados do banco ja que virao em tempo de execução eu nao tenho como pre-determinar o tipo dos dados, andei lendo e vi algo sobre reflectrion mas nao entendi como faço para usar, todos os exemplos pegam os atributos de uma classe.
Há como usar reflection para saber o tipo de dado do campo que está vindo de um recordset
Meu cod é mais ou menos assim:

while (rs.next()) {

String[] lin = new String[col1.length];

ArrayList Lin1 = new ArrayList();

Lin1.add(rs.getString(col1[0]));

Nesse ex. coloquei rs.getString mas em tempo de execução como faço para saber este tipo?? Se uso getString, getDouble, getInt…

1 Resposta

sergiotaborda

Analia:
Oi, estou iniciando em java e tenho um form de pesquisa genérico, posso usa-lo para pesquisar cliente, funcionario qq coisa ao clicar no botao passo a query que devera rodar e o nome das colunas a serem exibidas, na hora de adicionar os dados retornados do banco ja que virao em tempo de execução eu nao tenho como pre-determinar o tipo dos dados, andei lendo e vi algo sobre reflectrion mas nao entendi como faço para usar, todos os exemplos pegam os atributos de uma classe.
Há como usar reflection para saber o tipo de dado do campo que está vindo de um recordset
Meu cod é mais ou menos assim:

while (rs.next()) {

String[] lin = new String[col1.length];

ArrayList Lin1 = new ArrayList();

Lin1.add(rs.getString(col1[0]));

Nesse ex. coloquei rs.getString mas em tempo de execução como faço para saber este tipo?? Se uso getString, getDouble, getInt…

Vc pdoe usar rs.getObject() mas o seu problema é resolvido de outra forma.
Os dados têm que estar associados a metadados. Esses metadados podem estar na classe final que será preenchida pelos dados ou à parte.
a ideia é que os metadados dizem qual tipo de dado cada campo tem. dsta forma vc pode usar re.getXXX comforme o tipo. (Não use arrayList para pegar os dados, use um objeto com atributos)

Criado 13 de março de 2008
Ultima resposta 14 de mar. de 2008
Respostas 1
Participantes 2