是否可以将Lombok与Kotlin一起使用?

dev*_*ull 25 java annotation-processing lombok kotlin

我有一个Kotlin Gradle项目.我添加了龙目岛作为依赖,并用kapt注册了它

compileOnly("org.projectlombok:lombok:$lombokVersion")
kapt("org.projectlombok:lombok:$lombokVersion")
Run Code Online (Sandbox Code Playgroud)

我想只使用@Slf4janotation进行自动log生成.它适用于Java类,但不适用于Kotlin类.

到目前为止,甚至可以将Kotling和Lombok一起使用?

编辑:添加更多细节

如果我用一个Kotlin类注释@Slf4jlog在其中使用我得到

未解决的参考:日志

显然没有应用注释处理.

Sah*_*bra 8

您不能使用 annotation @Slf4j,而是在所需的类中手动创建其对象。

参考https://www.reddit.com/r/Kotlin/comments/8gbiul/slf4j_loggers_in_3_ways/


Mic*_*fel 7

Lombok不会在您的源代码上运行,而是在AST上运行.无论如何,它是一个由Java编译器在编译时运行的注释处理器.Kotlin编译器不使用这些注释处理器.另请参阅答案/sf/answers/2487115641/直接从马的嘴里.


Yet*_*att 6

如果您只想使用 Lombok 来使用 @Slf4j,那么我建议您改用 kotlin-logging:https : //github.com/MicroUtils/kotlin-logging

  • @taegyunkim 我不会说它更好,只是 Lombok 在 Kotlin 中不可用,而 KotlinLogging 是 Slf4j 的一个很好、简单的包装器。 (3认同)