【发布时间】:2016-09-29 08:56:19
【问题描述】:
我提供了一个 API,并且需要知道调用 API 的方法的位置。我可以使用反射或线程堆栈跟踪,但这会包含大量运行时成本。
我不需要确切的类名,每次调用一个唯一的引用就足够了。在 C 语言中,我通常会使用预处理器自动将 __FILE__ 和 __LINE__ 添加到方法调用中。
Java 中是否有一种方法(除了代码生成)可以以低运行时成本获得唯一的调用者标识?
【问题讨论】:
-
只是想知道:您打算在这里解决什么问题?
-
可以看看 AspectJ 并在调用您的 API 时设置一个连接点?
-
@matthelliwell “除了代码生成”消除了 AspectJ。
-
我对AspectJ不够熟悉:我不是反对字节码生成,而是反对源码生成
标签: java stack-trace