Java"自"(静态)引用

fef*_*ffi 9 java static scope self

我正在以静态上下文的方式寻找JAVA中当前类的"自我"引用,就像在PHP Scope Resolution Operator中一样

解决方案:超出范围?请注意,这与静态定义相比真的很慢(乘以300):

static Logger LOG = LoggerFactory.getLogger(new RuntimeException().getStackTrace()[0].getClassName());
Run Code Online (Sandbox Code Playgroud)

老式的方式是:

static Logger LOG = LoggerFactory.getLogger(<Classname>.class.getName());
Run Code Online (Sandbox Code Playgroud)

还有其他选择吗?我正在寻找一种将记录器定义放在抽象类中的方法.记录器应该确定它自己调用的类.

Pet*_*rey 13

稍快一点

static final Logger LOG = LoggerFactory.getLogger(
       Thread.currentThread().getStackTrace()[0].getClassName());
Run Code Online (Sandbox Code Playgroud)

如果你这样做了1000次,那么使用Class.class.getName()需要36 ms,而这样做需要60 ms.也许它不值得担心太多.;)