布尔字段的龙目岛注释@Getter

2022-08-31 23:49:28

我正在使用Java龙目岛注释为我的POJO生成getters。我有一个名为 .@GetterbooleanisAbc

在这种情况下,注释将生成一个名为 的方法。它不应该按名称生成一个方法吗?@GetterisAbc()isIsAbc()


答案 1

阅读龙目岛页面上的“小字”部分 https://projectlombok.org/features/GetterSetter.html

对于以 开头的布尔字段紧跟标题大小写字母,则不带任何前缀来生成 getter 名称。

因此,您遇到的行为符合指定。

请注意,和 的行为是不同的:booleanBoolean

@Getter
private boolean isGood; // => isGood()

@Getter
private boolean good; // => isGood()

@Getter
private Boolean isGood; // => getIsGood()

答案 2

龙目岛不以 开头,如果名称已经以 开头,后跟大写字母,如 中所示。isisisGood

您可能会遇到类似这样的名称,这将生成一个带有名称的 getter。为避免这种情况,您可以使用以下参数:canDeleteisCanDeletefluent

@Getter(fluent = true)
private boolean canDelete;

或(取决于版本):

@Getter
@Accessors(fluent = true)
private boolean canDelete;

在这种情况下,它将保持名称不变,因此 getter 变为 .canDelete()


推荐