1

其实有两个问题。

第一个是 - 我怎样才能获得这样的 id (my.package.MyClass@3e7bfc04) 具有“this”(在方面内部,使用 pjp.getTarget() 来获取“this”)。

第二个是 - 如何在当前程序执行点(其他类的某些方法,或更深层次)获取调用者的实例 ID。我可以使用调用堆栈

StackTraceElement [] trace = Thread.currentThread().getStackTrace();

然后决定是否有我需要的来电者。然后我想获取调用者的实例ID,但不知道如何获取它。

4

1 回答 1

0

您可以使用Java 反射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);
于 2012-06-08T09:54:07.507 回答