布尔字段的 Lombok 注释 @Getter
Lombok annotation @Getter for boolean field
我正在使用 Java lombok 注释 @Getter
为我的 POJO 生成 getter。我有一个名为 isAbc
.
的 boolean
字段
本例中的 @Getter
注释生成一个名为 isAbc()
的方法。它不应该生成一个名为 isIsAbc()
的方法吗?
阅读 lombok 页面上的 'small print' 部分 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.
所以您遇到的行为是指定的。
请注意,boolean
和 Boolean
的行为不同:
@Getter
private boolean isGood; // => isGood()
@Getter
private boolean good; // => isGood()
@Getter
private Boolean isGood; // => getIsGood()
我针对lombok(1.16.8)做了一些测试,结论如下。
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
如果名称已经以 is
开头后跟大写字母,如 isGood
.
,Lombok 不会以 is
作为前缀
您可能会遇到像 canDelete
这样的名称,它会生成名称为 isCanDelete
的 getter。为避免这种情况,您可以使用 fluent
参数:
@Getter(fluent = true)
private boolean canDelete;
或(取决于版本):
@Getter
@Accessors(fluent = true)
private boolean canDelete;
在这种情况下,它将保留名称,因此 getter 变为 canDelete()
。
我正在使用 Java lombok 注释 @Getter
为我的 POJO 生成 getter。我有一个名为 isAbc
.
boolean
字段
本例中的 @Getter
注释生成一个名为 isAbc()
的方法。它不应该生成一个名为 isIsAbc()
的方法吗?
阅读 lombok 页面上的 'small print' 部分 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.
所以您遇到的行为是指定的。
请注意,boolean
和 Boolean
的行为不同:
@Getter
private boolean isGood; // => isGood()
@Getter
private boolean good; // => isGood()
@Getter
private Boolean isGood; // => getIsGood()
我针对lombok(1.16.8)做了一些测试,结论如下。
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
如果名称已经以 is
开头后跟大写字母,如 isGood
.
is
作为前缀
您可能会遇到像 canDelete
这样的名称,它会生成名称为 isCanDelete
的 getter。为避免这种情况,您可以使用 fluent
参数:
@Getter(fluent = true)
private boolean canDelete;
或(取决于版本):
@Getter
@Accessors(fluent = true)
private boolean canDelete;
在这种情况下,它将保留名称,因此 getter 变为 canDelete()
。