1

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

4

2 回答 2

0

Java 中的 import 语句只是语法糖。它们有助于编写代码,因为您不必一直编写完全限定的类名。但是他们没有把它变成字节码。您可以将它们视为一种编译器指令。

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

于 2019-01-11T07:28:57.947 回答
0

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

于 2019-01-15T06:49:23.967 回答