Conseguir resolver, estava fazendo errado.
Ficou assim:
try {
Field[] campos = this.getClass().getDeclaredFields();
for(int i = 0; i < campos.length; i++) {
campos[i].setAccessible(true);
if(!campos[i].isAnnotationPresent(MyAnnotations.class)){
if(campos[i].getType().equals(Cliente.class)){
campos[i].set(this, new Cliente(this.RsAtual.getInt(3)));
}else if(campos[i].getType().equals(String.class)){
campos[i].set(this, campos[i].getType().cast(this.RsAtual.getString(5)));
}else if(campos[i].getType().equals(Integer.class)){
campos[i].set(this, campos[i].getType().cast(this.RsAtual.getInt(6)));
}
}else{
//if(campos[i].getType().equals())
}
}
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Teria como aquele retorno this.getClass().getDeclaredFields(); retornar pela ordem de declaração e não por ordem alfabética?
Obrigado desde já.
On Monday, December 3, 2012 9:32:04 AM UTC-2, Guilherme Bernardi wrote:
Bom dia.Alguém já precisou fazer algo semelhante:Eu tenho uma classe com atributos:
private Integer Numero;private String Data;private String Emissao;private Cliente Cliente;E eu faço uma consulta no banco SQLite e preciso que minha persistência repasse esse cursor carregando os dados nas propriedades dessa classe. Para eu construir o objeto atual retornado pelo banco.Meu problema exatamente é por exemplo, eu tenho uma propriedade que é do tipo Cliente.Eu preciso acessar o set do Código do Cliente lá da Classe Cliente, alguém sabe como faço isso?Quando são campos simples, tipo String, Integer, tudo bem eu consigo setá-los.@Overridepublic void CarregaDados(){this.Status = eStatus.Carregando;this.setTabela(this.getClass().getSimpleName()); this.setTabelaSelecao("Numero = " + this.getNumero().toString());super.CarregaDados();Field[] campos = this.getClass().getDeclaredFields(); for(int i = 0; i < campos.length; i++) {if(campos[i].getType().equals(Cliente.class)){ campos[i].setAccessible(true);}}}Obrigado desde já.






0 comentários:
Postar um comentário