Il paraît que @RequiredArgsConstructor
ne fonctionne pas dans le code ci-dessous. Pourquoi?
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;
}
Je reçois l'erreur:
javax.faces.el.EvaluationException: Java.lang.Error: Unresolved compilation problem:
The constructor User(String) is undefined
Pour une raison quelconque, cela semble fonctionner pour une autre classe de domaine dans laquelle aucun constructeur n'a défini mais a plutôt utilisé le @RequiredArgsConstructor
annotation.
Selon Documentation , les arguments requis sont les champs finaux et les champs avec des contraintes telles que @NonNull.
Vous devez créer un nom d'utilisateur comme @NonNull
@NonNull private String username;
Et vous devez également les rendre définitifs.
Il convient également de noter pour les futurs lecteurs que @ Data fournit également @ RequiredArgsConstructor , il n'est donc pas nécessaire d'utiliser les deux annotations :)