J'ai résumé le comportement lorsque le getter généré par lombok est dupliqué.
Les champs ʻa et ʻA
génèrent tous deux une méthode appeléegetA ()
.
Quelle valeur de champ sera obtenue en exécutant getA ()
?
Les résultats sont les suivants.
OneCharacter.java
/**Champs commençant par une minuscule*/
@Getter
public class OneCharacter {
private String a = "a";
private String A = "A";
public void print() {
System.out.println(getA()); //⇒"a"
}
}
OneCharacter.java
/**Champs commençant par une majuscule*/
@Getter
public class OneCharacter {
private String A = "A";
private String a = "a";
public void print() {
System.out.println(getA()); //⇒"A"
}
}
et la méthode
getA ()` sont définisSi le getter défini dans la classe et le getter généré par lombok ont le même nom, lequel sera appelé?
Les résultats sont les suivants.
OneCharacter.java
@Getter
public class OneCharacter {
public String getA() { return "getA()";}
private String A = "A";
public void print() {
System.out.println(getA()); //⇒"getA()"
}
}
OneCharacter.java
@Getter
public class OneCharacter {
private String A = "A";
public String getA() { return "getA()";}
public void print() {
System.out.println(getA()); //⇒"getA()"
}
}
Les getters définis dans la classe ont été appelés quel que soit l'ordre de déclaration.
Nous avons reçu un commentaire de @inabajunmr.
Le phénomène ci-dessus a été décrit dans lombok @Getter and @Setter.
You can annotate any field with @Getter and/or @Setter, to let lombok generate the default getter/setter automatically. A default getter simply returns the field, and is named getFoo if the field is called foo (or isFoo if the field's type is boolean). A default setter is named setFoo if the field is called foo, returns void, and takes 1 parameter of the same type as the field. It simply sets the field to this value.