次のシナリオでLombokがどのように使用されることになっているのか、私は完全に混乱しています:
基本クラス:
@Data
public abstract class BaseClass {
protected final String foo;
protected final String bar;
}
サブクラス:
@Data
public class SubClass extends BaseClass {
private final String bazz;
}
@Data
Lombokは、基本クラスにデフォルトのコンストラクターが必要であるという 2 番目のクラスの注釈について不平を言っています。ただし、基本クラスのフィールドは最終的なものであるため、デフォルトのコンストラクターはすべてのフィールドを何らかの値に初期化する必要があります。これは、サブクラスのコンストラクターによって変更できないため、面倒です。
引数を持つコンストラクターを介して具体的なサブクラスを作成できるように、これらのクラスを設定する正しい方法は何ですか? 最終フィールドでビルダーを使用できますか? できるだけコードを書くことを避け、Lombok アノテーションに依存したいと思います (ただし、これが不可能な場合があることは承知しています)。