I am using Java lombok annotation @Getter to generate getters for my POJO. I have a \'boolean\' field by the name \'isAbc\'. The @Getter annotation in this case generates a
Read the 'small print' section on the lombok page https://projectlombok.org/features/GetterSetter.html
For boolean fields that start with is immediately followed by a title-case letter, nothing is prefixed to generate the getter name.
So the behavior you experience is as specified.
Note that the behavior is different for boolean and Boolean:
@Getter
private boolean isGood; // => isGood()
@Getter
private boolean good; // => isGood()
@Getter
private Boolean isGood; // => getIsGood()
Lombok does not prefix with is if the name already starts with is followed by an uppercase letter as in isGood.
You might encounter names like canDelete which too some frustration will have a getter generated with the name isCanDelete. To avoid this you can use the fluent parameter as in:
@Getter(fluent = true)
private boolean canDelete;
or (depending on version):
@Getter
@Accessors(fluent = true)
private boolean canDelete;
In which case it will leave the name as is.
I do some tests against the lombok(1.16.8), and the conclusions are as below.
private Boolean good;
getter => getGood() Boolean
setter => setGood(Boolean good) void
private boolean good;
getter => isGood() boolean
setter => setGood(boolean good) void
private Boolean isGood;
getter => getIsGood() Boolean
setter => setIsGood() void
private boolean isGood;
getter => isGood() boolean
setter => setGood(boolean good) void