Когда я открываю и декомпилирую класс из [email protected] в IntelliJ, я вижу import lombok.NonNull
, но не вижу временной зависимости от ломбока в своем проекте. Теперь это имеет смысл, потому что lombok устанавливается как необязательная зависимость в spring-data-parent
. Я так понимаю, ломбок не является рантайм-зависимостью, но почему я тогда его там вижу? Это магия IntelliJ, поддерживающая Lombok при декомпиляции класса?
Почему я вижу импорт ломбока в декомпилированном классе
Ответы (2)
Операторы импорта в Java — это просто синтаксический сахар. Они помогают писать код, потому что вам не нужно постоянно писать полные имена классов. Но в байт-код они не попадают. Вы можете рассматривать их как своего рода директиву компилятора.
Таким образом, если вы видите операторы импорта в своем декомпилированном коде, но фактически этот импорт не используется в коде, очень вероятно, что это вызвано декомпилятором.
person
Jan Rieke
schedule
11.01.2019
Это связано с тем, что spring-data-mongo использует ломбок, но не загрузил исходный zip-файл delombok.
person
Carl
schedule
15.01.2019