Como pegar o método que invocou?

4 respostas
lelodois

Pessoal só conheço uma maneira de fazer isto, e é forçando uma Throwable.
Reflection.getCallerClass(2) este cara retorna a classe, eu preciso do método, alguem sabe?
vlw

4 Respostas

T

De fato, é forçando uma throwable mesmo:

Throwable thr = new Throwable();
thr.fillInStackTrace();
StackTraceElement[] ste = thr.getStackTrace();
System.out.println (ste[2].getMethodName());
lelodois

Não tem como usando reflection?

T

Você usou a classe sun.reflect.Reflection, que não é exatamente a tal “reflection” (cujas classes estão em java.lang.reflect.* ).

De qualquer maneira, a documentação de sun.reflect.Reflection diz que não existe como você saber o método, só a classe, usando a tal classe Reflection.

http://docjar.org/docs/api/sun/reflect/Reflection.html
http://docjar.org/docs/api/sun/reflect/package-index.html

lelodois

Certo, blz.
Sei que reflection são as que estão em java.lang
Mas pensava que esta classe reflection fosse um aditivo ou coisa do tipo.
De qualquer forma eu agradeço, vlw!
[resolvido]

Criado 26 de fevereiro de 2009
Ultima resposta 26 de fev. de 2009
Respostas 4
Participantes 2