Pegar nome do metodo atual

5 respostas
R

Seguinte, ja procurei no forum, e tem umas respostas.
Quero saber se não tem outra alma viva que saiba um jeito melhor.
Ja encontrei com xunxo, com reflections, e outras coisas… o que qro é o seguinte…

Quero pegar o nome do metodo em que se encontra…

EX.:

class Teste{

       public void metodoQualquer(){
                String nomeDesteMetodo = this.getMetodoAtual();
       }

}

lógico que this.getMetodoAtual(); não existe

E ai

5 Respostas

M

Voce pode criar uma Exception, e pegar o primeiro item da stacktrace.

H

http://www.guj.com.br/posts/list/111487.java#601096

M

É o mesmo principio que falei.

Mas invés de pegar o nome da classe voce pega o nome do método.

A
public static void main(String[] args) {
		System.out.println(getNome());

	}
	
	public static String getNome() {
		String methodName = Thread.currentThread().getStackTrace()[2].getMethodName(); //Pega o método que chamou
		methodName = Thread.currentThread().getStackTrace()[1].getMethodName(); //Pega o método atual
		return methodName;
	}

[]´s

R

Brigado a todos, fico perfeito com isso aqui

public static String classeChamadora () { Throwable thr = new Throwable(); thr.fillInStackTrace (); StackTraceElement[] ste = thr.getStackTrace(); return ste[2].getMethodName(); } public void teste(){ Tools.alerta(classeChamadora()); } public void tentaLogin(){ teste(); }

Chamando a tentaLogin(), a teste vai saber que foi ela que chamou, e da pra adaptar pra outros usos…

Criado 13 de setembro de 2010
Ultima resposta 13 de set. de 2010
Respostas 5
Participantes 4