我使用Java lombok注释@Getter为我的POJO生成getter.我有一个名为'isAbc'的'boolean'字段.在这种情况下,@ Getter注释通过名称'isAbc()'生成一个方法.它不应该通过名称'isIsAbc()'生成一个方法吗?
Har*_*ebe 57
阅读lombok页面上的"小字体"部分https://projectlombok.org/features/GetterSetter.html
对于以开头的布尔字段后面紧跟着标题大小写字母,没有任何前缀来生成getter名称.
因此,您遇到的行为是指定的.
注意行为是不同的boolean和Boolean:
@Getter
private boolean isGood; // => isGood()
@Getter
private boolean good; // => isGood()
@Getter
private Boolean isGood; // => getIsGood()
Run Code Online (Sandbox Code Playgroud)
小智 12
我针对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
Run Code Online (Sandbox Code Playgroud)
is如果名称已经以开头开头,则Lombok 不以前缀开头,is后跟大写字母,如isGood。
您可能会遇到类似canDelete这样的名称,因为它会生成一个带有名称的吸气剂isCanDelete。为避免这种情况,您可以使用以下fluent参数:
@Getter(fluent = true)
private boolean canDelete;
Run Code Online (Sandbox Code Playgroud)
或(取决于版本):
@Getter
@Accessors(fluent = true)
private boolean canDelete;
Run Code Online (Sandbox Code Playgroud)
在这种情况下,它将保留名称不变。
| 归档时间: |
|
| 查看次数: |
18520 次 |
| 最近记录: |