为什么我在反编译类中看到龙目岛进口

时间:2019-01-10 10:02:16

标签: intellij-idea spring-data spring-data-mongodb lombok intellij-lombok-plugin

当我在IntelliJ中从spring-data-mongo@2.1.3打开并反编译一个类时,我看到了import lombok.NonNull,但是在我的项目中没有看到任何lombok瞬态依赖项。现在,这很有意义,因为在spring-data-parent中将lombok设置为可选依赖项。据我了解,lombok不是运行时依赖项,但是为什么我在那里看到它呢?是IntelliJ magic支持Lombok的反编译类吗?

2 个答案:

答案 0 :(得分:0)

Java中的导入语句只是语法糖。它们有助于编写代码,因为您不必始终编写完全合格的类名。但是他们没有将其放入字节码中。您可以将它们视为一种编译器指令。

因此,如果在反编译的代码中看到import语句,但是在代码中没有实际使用该导入,则很可能是由反编译器引起的。

答案 1 :(得分:0)

这是因为spring-data-mongo使用了lombok,但他们没有上传delombok源zip。