Может ли ломбок снизить производительность?

Мне действительно нравится функция проекта lombok, которая избавляется от кода шаблона. Мой старший предложил мне, что ломбок, похоже, использует отражение, чтобы уменьшить код шаблона, и однажды я услышал, что использование эффекта отражения эффекта. Мой вопрос в том, есть ли проблемы с использованием проекта lombok?

Ответ 1

Ломбок не использует отражение во время выполнения. Он подключается к внутренним компонентам компилятора и добавляет код в классы во время компиляции, который затем компилируется в обычном режиме.

Ответ 2

@chrylis ответ правильный, но будьте осторожны с графом объектов (@Data и @ToString аннотация), например.

@Data 
public class A {
   private B b;
}

@Data 
public class B {
   private A a;
}

Ломбок создаст toString с бесконечной рекурсией внутри. Вы должны использовать что-то вроде @ToString(exclude = {"a"}) внутри класса B