Генерация номеров строк с помощью Lombok

Использует ли lombok в java класс приведет к неправильным номерам строк в stacktrace? Предположение: нет delombok был использован в коде.

Ломбок не перебивает line number generation но он будет генерировать код везде, где размещены аннотации. Эти строки №. будет частью байт-кода и, следовательно, когда в stacktrace печатается, он будет содержать неправильные номера строк. Верна ли моя приведенная выше интерпретация?

1 ответ

Номера строк хранятся в .class файл компилятором Java на основе фактических строк .java файл исходного кода.

Lombok подключается к самому процессу компиляции, изменяя байт-код, который записывается в .class файл на лету. Он никогда не добавляет текст к .java исходный файл, и он также не изменяет информацию о номере строки, которую компилятор хранит в .class файл.

Поэтому номера строк в трассировке стека всегда соответствуют фактическому исходному коду Java.


Примечание: вопрос исключил дело "деломбок". Для заинтересованных читателей: вы можете использовать плагин "delombok" для генерации простого .java код, который включает в себя все, что Lombok мог бы вставить во время компиляции. Этот инструмент предназначен для таких ситуаций, как удаление Lombok из базы кода или подача исходного кода в инструмент анализатора, который запутывается в материалах Lombok. В этом случае вы получите другой, больший .java исходные файлы, которые, конечно, имеют разные номера строк.

Другие вопросы по тегам