从如何使用堆栈跟踪或反射找到方法的调用者? (因为我没有足够的声誉在那里发表评论)
由于sun.reflect.Reflection.getCallerClass已在jdk8中删除,有什么可以替代?
如何使用sun.misc.SharedSecrets
JavaLangAccess access = SharedSecrets.getJavaLangAccess();
Throwable throwable = new Throwable();
int depth = access.getStackTraceDepth(throwable);
StackTraceElement frame = access.getStackTraceElement(throwable, depth);
Run Code Online (Sandbox Code Playgroud)
正如上面评论中所讨论的。我得出的结论是 SharedSecrets.getJavaLangAccess()在短期内使用上面解释的方法,但sun.*完全消除对包的依赖作为长期解决方案。
基本上我正在改变我的需求本身,以便它不需要getCallerClass功能。
| 归档时间: |
|
| 查看次数: |
4682 次 |
| 最近记录: |