Lombok annotation @Getter for boolean field
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
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 will generate a getter with the name isCanDelete
. To avoid this you can use the fluent
parameter:
@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 it is so the getter becomes canDelete()
.
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()