Pegar nome do atributo de uma classe

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

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

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

Vê se isso te ajuda:

[code]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);
      }
   }

}[/code]

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

Abraços.

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

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

Oi,

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

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

Tchauzin!

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?

MinhaClasse.class.getMethods();

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

Problema resolvido.Obrigado