Генерация номеров строк с помощью Lombok
Использует ли lombok
в java
класс приведет к неправильным номерам строк в stacktrace
? Предположение: нет delombok
был использован в коде.
Ломбок не перебивает line number generation
но он будет генерировать код везде, где размещены аннотации. Эти строки №. будет частью байт-кода и, следовательно, когда в stacktrace
печатается, он будет содержать неправильные номера строк. Верна ли моя приведенная выше интерпретация?
1 ответ
Номера строк хранятся в .class
файл компилятором Java на основе фактических строк .java
файл исходного кода.
Lombok подключается к самому процессу компиляции, изменяя байт-код, который записывается в .class
файл на лету. Он никогда не добавляет текст к .java
исходный файл, и он также не изменяет информацию о номере строки, которую компилятор хранит в .class
файл.
Поэтому номера строк в трассировке стека всегда соответствуют фактическому исходному коду Java.
Примечание: вопрос исключил дело "деломбок". Для заинтересованных читателей: вы можете использовать плагин "delombok" для генерации простого .java
код, который включает в себя все, что Lombok мог бы вставить во время компиляции. Этот инструмент предназначен для таких ситуаций, как удаление Lombok из базы кода или подача исходного кода в инструмент анализатора, который запутывается в материалах Lombok. В этом случае вы получите другой, больший .java
исходные файлы, которые, конечно, имеют разные номера строк.