Pegar nome do atributo de uma classe

7 respostas
A

Como faço para pegar os nomes dos atributos de uma classe?

7 Respostas

O

Nao poderia ser, por exemplo, atraves de .class.getFields() ?

L

O que você precisa a API Reflections do Java pode ajudar a fazer.

Vê se isso te ajuda:
import java.lang.reflect.*;
        
   public class field1 {
      private double d;
      public static final int i = 37;
      String s = "testing";
        
      public static void main(String args[])
      {
         try {
            Class cls = Class.forName("field1");
        
            Field fieldlist[] 
              = cls.getDeclaredFields();
            for (int i 
              = 0; i < fieldlist.length; i++) {
               Field fld = fieldlist[i];
               System.out.println("name
                  = " + fld.getName());
               System.out.println("decl class = " +
                           fld.getDeclaringClass());
               System.out.println("type
                  = " + fld.getType());
               int mod = fld.getModifiers();
               System.out.println("modifiers = " +
                          Modifier.toString(mod));
               System.out.println("-----");
            }
          }
          catch (Throwable e) {
             System.err.println(e);
          }
       }
   }

http://java.sun.com/developer/technicalArticles/ALT/Reflection/
http://www.ibm.com/developerworks/library/j-dyn0603/

Abraços.

M

E para ver os campos privados(Não ve os campos herdados)

for(Field f : getClass().getDeclaredFields())
System.out.println(f.getName());
L

Oi,

Se você já sabe o nome deste atributo e quer simplesmente pegar o conteudo dele:

NomeDaClasse.class.getField("NomeDoAtributo").get(null);

Tchauzin!

H

Além dos atributos,gostaria de pegar também os métodos(toda a assinatura do método).Existe uma forma de se fazer isso?

M
MinhaClasse.class.getMethods();

Ai voce percorre esse array e pra cada Method existem metodos pra pegar o tipo dos parametros, tipo de retorno…

H

Problema resolvido.Obrigado

Criado 8 de fevereiro de 2010
Ultima resposta 6 de dez. de 2012
Respostas 7
Participantes 7