Pergunta

Eu estou procurando uma maneira de desenvolver uma MethodInterceptor que imprime a classe chamador.

Existe alguma maneira de obter o objeto chamador para o interceptor método?

Foi útil?

Solução

Este trabalho poder, declarar uma exceção e, em seguida, usá-lo para obter um olhar para a pilha no momento em que o seu método é interceptado:


Throwable t = new Throwable();
StackTraceElement[] elements = t.getStackTrace();

String calleeMethod = elements[0].getMethodName();
String callerMethodName = elements[1].getMethodName();
String callerClassName = elements[1].getClassName();

System.out.println("CallerClassName=" + callerClassName + " , Caller method name: " + callerMethodName);
System.out.println("Callee method name: " + calleeMethod);

Outras dicas

Você poderia fazer algo bruto com a geração de um rastreamento de pilha e verificá-lo, mas isso é feio

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top