The behavior when getters generated by lombok are duplicated is summarized.
and ʻA
existThe fields ʻa and ʻA
both generate a method calledgetA ()
.
Which field's value will be obtained by executing getA ()
?
The results are as follows.
OneCharacter.java
/**Fields starting with a lowercase letter*/
@Getter
public class OneCharacter {
private String a = "a";
private String A = "A";
public void print() {
System.out.println(getA()); //⇒"a"
}
}
OneCharacter.java
/**Fields with uppercase letters first*/
@Getter
public class OneCharacter {
private String A = "A";
private String a = "a";
public void print() {
System.out.println(getA()); //⇒"A"
}
}
and the method
getA () `are definedIf the getter defined in the class and the getter generated by lombok have the same name, which one will be called?
The results are as follows.
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()"
}
}
The getters defined in the class were called regardless of the order of declaration.
We received a comment from @inabajunmr.
The above phenomenon was described in 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.