龙目岛日志注释不适用于静态方法



我正在尝试使用龙目岛的@Slf4j注释。它适用于非静态方法,但我无法将它们用于静态方法,例如:

import lombok.extern.slf4j.Slf4j;
@Slf4j
public class MyClass {
public static void staticMethod() {
log.info(""); //build error
//code
}
public void nonStaticMethod() {
log.info(""); //builds ok
//code
}

更具体地说,构建错误是:

Error:(17, 9) java: non-static variable log cannot be referenced from a static context

因此,要么我错过了某些东西,要么这根本不是这样做的方法,但是引起我一些困惑的是,其他答案似乎表明这种用法是正确的。有谁知道我做错了什么?谢谢你的帮助。

与德伦博克核实龙目岛在您的情况下究竟会产生什么。

通常记录器应该是一个静态字段。

但是有一个配置:

lombok.log.fieldIsStatic = [true | false] (default: true)

来自文档:通常生成的记录器是一个静态字段。通过将此键设置为 false,生成的字段将改为实例字段。

当然,如果字段是非静态的,则不能像往常一样在java中从静态方法使用它

文档链接

最新更新