1. ホーム
  2. java

[解決済み] Lombokです。RequiredArgsConstructorが動作しない

2022-03-13 22:44:56

質問

どうやら @RequiredArgsConstructor が動作しない。なぜでしょうか?

import java.io.Serializable;

import lombok.Data;
import lombok.RequiredArgsConstructor;

@Data
@RequiredArgsConstructor
public class User implements Serializable {

    private String username;

    /*public User(String username) {
        this.username = username;
    }*/

    private static final long serialVersionUID = 8043545738660721361L;
}

エラーが出ます。

javax.faces.el.EvaluationException: java.lang.Error: Unresolved compilation problem: 
    The constructor User(String) is undefined

なぜか、コンストラクタが定義されていない他のドメインクラスでは動作するようですが、その代わりに @RequiredArgsConstructor アノテーションを使用します。

どのように解決するのですか?

によると ドキュメンテーション , 必須引数は、final フィールドと @NonNull などの制約を持つフィールドです。

ユーザー名を@NonNullにする必要があります。

@NonNull private String username;

そして、それらもファイナルにする必要があります。