Galera,
Sou novo aqui no forum e desde já agradeço a ajuda de tudo que já achei aqui para resolver meus problemas, mas este não encontrei, caso já existe um tópico parecido não o encontrei.
Estou com o seguinte problema. Criei uma classe para ler os atributos java dentro de outra classe com Reflection (Botões, combos, etc) até ai normal. Fiz testes com a propria classe que estava em execução e funcionou normalmente, mas não sei se estou fazendo errado, quando tento recuperar os atributos de uma classe que não esteja no mesmo pacote da um erro de classe não encontrada, mesmo eu passando o caminho do pacote onde se encontra a classe.
Código
private void carregaAtributo(String nomeClasse) {
try {
//Class cls = Class.forName(nomeClasse);
Class cls = Class.forName(nomeClasse, true, getClass().getClassLoader());
Field fieldlist[] = cls.getDeclaredFields();
for (int i = 0; i < fieldlist.length; i++) {
Field fld = fieldlist[i];
String campo[] = new String[fieldlist.length];
campo[i] = fld.getType().toString();
if (campo[i].equals("class javax.swing.JButton") ||
campo[i].equals("class javax.swing.JComboBox")) {
cbAtributo.addItem(fld.getName());
}
}
} catch (Throwable e) {
System.err.println(e);
}
}
//carregaAtributo("NavAuto.Navauto");
carregaAtributo("com.eage.tf.contas.OpAbEncMass.events.close");
Se eu utilizo a primeira chamada ele funciona normal por ser a classe em execução “Navauto”, mas se utilizo a segunda linha não funciona, da erro que não foi encontrada a classe.
Não sei se estou passando da forma certa a String ou se há outro jeito.
Agradeço desde já ajuda galera.