在 Inner 类 中使用 Lombok 的日志记录

Using Lombok's logging in Inner classes

我试图在内部 class 中使用 Lombok 的 @Slf4j 注释,但我收到编译时错误消息 内部 class 中的非法静态声明。现在我已经恢复到不在内部 class 中使用 @Slf4j 注释。 Lombok 是否有办法将 @Slf4j 注释应用于内部 classes?

是的,您可以通过更改 Lombok 的配置。

Lombok 默认生成记录器作为静态字段。内部 classes(如果未声明为静态)是其拥有的外部 class 的实例成员。因此,在内部 classes 中声明任何静态内容是非法的;这就是您收到编译时错误消息的原因。

但是您可以将 Lombok 配置为生成记录器作为实例字段。最简单的配置方法是在内部 class 所在的目录中创建一个 lombok.config 文件。在此 lombok.config 文件中添加以下行。 lombok.log.fieldIsStatic = false。重新编译,你的错误消失了。有关详细信息,请查看 lombok 的 configuration page and the "Supported configuration keys" section at the bottom of the @Log page.