Olá a todos…
Bom pessoal, eu tenho uma classe Enderecos, eu declarei um HashMap como public e no construtor eu seto as chaves e seus devidos valores, a intenção é criar nomes simbólicos para os nomes dos atributos declarados nessa classe.
[code]public HashMap atributos = new HashMap();
public Enderecos() {
inserirValores();
}
private void inserirValores() {
atributos.put(“endereco”, “Endereço”);
atributos.put(“numero”, “Número”);
atributos.put(“cep”, “CEP”);
atributos.put(“caixapostal”, “Caixa”);
}
[/code]
O que eu quero agora é obter o valor desse HashMap através de reflexao, estou utilizando o código abaixo.
public void teste(Object bean) {
Class classe = null;
try {
classe = Class.forName(bean.getClass().getName());
Object obj = classe.newInstance();
Field campos[] = obj.getClass().getDeclaredFields();
for (Field f : campos) {
if (f.getType().getName().equals("java.util.HashMap")) {
//Object value = f.get(new HashMap());
HashMap value = (HashMap) f.get(new HashMap());
}
}
} catch (InstantiationException ex) {
ex.printStackTrace();
} catch (IllegalAccessException ex) {
ex.printStackTrace();
} catch (ClassNotFoundException ex) {
ex.printStackTrace();
}
}
já tentei fazer de algumas maneiras diferentes como:
Object o = new HashMap();
Object value = f.get(o);
mas eu nao to conseguindo, sempre caio na excessao:
[quote]java.lang.IllegalArgumentException: Can not set java.util.HashMap field beans.Enderecos.atributos to java.util.HashMap
[/quote]
Alguem tem alguma idéia de como posso obter o valor desse HashMap da classe q eu passo por parametro?
Desde já obrigado !! T+