java - lombok 日志注释不适用于静态方法

标签 java lombok

我正在尝试使用 lombok 的 @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

所以要么我错过了一些东西,要么这根本不是这样做的方法,但让我感到困惑的是 other answers似乎表明这种用法是正确的。有谁知道我做错了什么?感谢您的帮助。

最佳答案

向 Delombok 检查 lombok 在您的情况下到底生成了什么。

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

但是有一个配置:

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

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

当然,如果该字段是非静态的,您就不能像 Java 中那样从静态方法中使用它

一个link到文档

关于java - lombok 日志注释不适用于静态方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62512437/

相关文章:

c# - 有没有办法在 SQL 数据库中搜索相似词(意思是不相同的词)?

java - For 循环检查文件是否存在以及是否不创建文件

java - 如何公开和@EmbeddedId 的字段

jacoco - 如何忽略 lombok.@UtilityClass for Jacoco?

java - 在这种情况下如何使用@JsonProperty - jackson API with lombok

java - META-INF/spring.factories 中缺少 spring 自动配置类

java - Lejos (java) 和接口(interface)//UML 建议

java - 字符串交替字母

unit-testing - Mockito 单元测试 lombok.extern.slf4j @Slf4j 注释日志?

java - List.indexOf() 的 lombok EqualsAndHashCode