【发布时间】:2012-06-08 09:49:22
【问题描述】:
实际上有两个问题。
第一个是 - 我怎样才能获得这样的 id (my.package.MyClass@3e7bfc04) 具有“this”(在方面内部,使用 pjp.getTarget() 来获取“this”)。
第二个是 - 如何在当前程序执行点(其他类的某些方法,或更深层次)获取调用者的实例 id。我可以使用
获取调用堆栈StackTraceElement [] trace = Thread.currentThread().getStackTrace();
然后决定是否有我需要的呼叫者。然后我想获取调用者的实例ID,但不知道如何获取它。
【问题讨论】:
-
找到了一种获取参考 id 的解决方案: String hashCode = Integer.toHexString(System.identityHashCode(pjp.getTarget()));但是...它不等于 ClassName@HashCode,正如我在调试器中看到的那样。
标签: java call stack-trace aspectj