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