我正在寻找一种开发MethodInterceptor的方法,该方法打印调用者类。

有没有办法让调用者对象进入方法拦截器?

有帮助吗?

解决方案

这可能有效,声明一个异常,然后在截获方法时使用它来查看堆栈:


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);

其他提示

你可以做一些粗略的事情,生成一个堆栈跟踪并检查它,但这很难看

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top