在不使用Exceptions的情况下获取调用类的名称

Pee*_*ter 3 java

是的,通过使用异常获取类名是一个合理的解决方案,但我正在寻找更优雅的东西.

String className = new Exception().getStackTrace()[1].getClassName();
Run Code Online (Sandbox Code Playgroud)

这将主要用于日志记录目的,并确保我的缓存关键字是特定于组件/调用者类的.

Sea*_*oyd 10

a)不需要使用Exception,你可以这样做: Thread.currentThread().getStackTrace()

b)无论你想做什么,都不要这样做.听起来真可怕.我想你应该考虑通过AOP进行日志记录(这是一个看起来合理的小教程).