Почему я вижу импорт ломбоков в декомпилированном классе - PullRequest
0 голосов
/ 10 января 2019

Когда я открываю и декомпилирую класс из spring-data-mongo@2.1.3 в IntelliJ, я вижу import lombok.NonNull, но я не вижу никакой переходной зависимости lombok в моем проекте. Теперь это имеет смысл, потому что lombok устанавливается как необязательная зависимость в spring-data-parent. Как я понимаю, lombok не является зависимостью времени выполнения, но почему я вижу это там тогда? Магия IntelliJ поддерживает Lombok при декомпиляции класса?

Ответы [ 2 ]

0 голосов
/ 15 января 2019

Это потому, что spring-data-mongo использует lombok, но они не загрузили исходный zip-файл delombok.

0 голосов
/ 11 января 2019

Операторы импорта в Java являются просто синтаксическим сахаром. Они помогают в написании кода, потому что вам не нужно постоянно писать полные имена классов. Но они не превращают это в байт-код. Вы можете видеть их как своего рода директиву компилятора.

Таким образом, если вы видите операторы импорта в декомпилированном коде, но в коде нет фактического использования этого импорта, вполне вероятно, что это вызвано декомпилятором.

...