web-dev-qa-db-ja.com

lombokはパフォーマンスを低下させる可能性がありますか?

ボイラープレートコードを取り除くプロジェクトロンボクの機能を本当に楽しんでいます。私の先輩は、ロンボクがボイラープレートコードを減らすために反射を使用しているようだと私に提案しました。私の質問は、プロジェクトロンボクを使用するための問題はありますか?

21
Ye Wint

Lombokは実行時にリフレクションを使用しません。コンパイラの内部にフックし、コンパイル時にクラスにコードを追加します。その後、コードは通常どおりコンパイルされます。

36

@chrylisの答えは正しいですが、オブジェクトグラフ(_@Data_および_@ToString_アノテーション)に注意してください。

_@Data 
public class A {
   private B b;
}

@Data 
public class B {
   private A a;
}
_

Lombokは、内部で無限再帰を使用してtoStringを作成します。クラスB内で@ToString(exclude = {"a"})のようなものを使用する必要があります

6
sibnick