实际上有两个问题。
首先是 - 如何获得这样的id(my.package.MyClass@3e7bfc04)具有'this'(在方面内部,使用pjp.getTarget()获取'this')。
第二个是 - 如何在当前程序执行点(其他类的某个方法,或更深层次)获取调用者的实例id。我可以使用
获得调用堆栈StackTraceElement [] trace = Thread.currentThread().getStackTrace();
然后决定是否有我需要的来电。然后我想获得调用者的实例ID,但不知道如何获得它。
答案 0 :(得分:0)
您可以使用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);