实际上有两个问题。
第一个是 - 我怎样才能获得这样的 id (my.package.MyClass@3e7bfc04) 具有“this”(在方面内部,使用 pjp.getTarget() 来获取“this”)。
第二个是 - 如何在当前程序执行点(其他类的某些方法,或更深层)获取调用者的实例 ID。我可以使用
获取调用堆栈StackTraceElement [] trace = Thread.currentThread().getStackTrace();
然后决定是否有我需要的调用者。然后我想获取调用者的实例ID,但不知道如何获取它。
最佳答案
您可以使用Java Reflection和 StackTraceElement .
StackTraceElement[] elements = new Throwable().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);
关于java - 如何获取调用者(或调用者的调用者,或更深入的调用堆栈)实例 ID - my.package.MyClass@3e7bfc04,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10946574/