1
@RequiredArgsConstructor
がない最終フィールドが存在しない空のコンストラクタを生成ロンボク注釈whith空のコンストラクタを生成しない、このコードは、エラーなしでコンパイル引数なしのコンストラクタが定義されていないので@Data
もRequiredArgsConstructor
を生成しなければならないが、次のコードでロンボク@Dataがない最終フィールド
import lombok.Data;
@Data
public class LombokTest {
public LombokTest(String a) {
// to avoid creation of the default constructor by the Java compiler
}
public static void main(String[] args) {
new LombokTest();
}
}
メインメソッドで新しいLombokTest()はエラーが発生します。
これはLombokのバグですか?
デフォルトの空のコンストラクタは、Javaコンパイラによって生成され、Lombokでは生成されません。 Lombokのドキュメントには、「@Dataは、@ToString、@EqualsAndHashCode、@Getter/@Setter、@RequiredArgsConstructorの機能をまとめた便利なショートカットアノテーションです。したがって、必ず空のコンストラクタであるRequiredArgsConstructorを生成する必要がありますこの場合。 – balage
はいemtpy construtorはJavaによって生成されますが、あなたが他のコンストラクタを持っていない場合にのみ生成されます:lombokはこの原則に従います... – rlm
そのため、両方のケースで明示的なコンストラクタを追加したので、Lombokの動作に集中できます。 – balage