用于布尔字段的 Lombok 注解 @Getter

新手上路,请多包涵

我正在使用 Java lombok 注释 @Getter 为我的 POJO 生成吸气剂。我有一个名为 isAbcboolean 字段。

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

原文由 Nitesh Kumar 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 935
2 个回答

阅读 lombok 页面上的“细则”部分 https://projectlombok.org/features/GetterSetter.html

对于以 开头的布尔字段,紧接着是一个首字母大写字母,没有任何前缀来生成 getter 名称。

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

请注意, booleanBoolean 的行为不同:

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

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

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

原文由 Harald Gliebe 发布,翻译遵循 CC BY-SA 3.0 许可协议

Lombok 不以 is 作为前缀,如果名称已经以 is 开头,后跟一个大写字母,如 isGood

您可能会遇到像 canDelete 这样的名称,它将生成一个名为 isCanDelete 的 getter。为避免这种情况,您可以使用 fluent 参数:

 @Getter(fluent = true)
private boolean canDelete;

或(取决于版本):

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

在这种情况下,它将保留名称原样,因此吸气剂变为 canDelete()

原文由 Kent Munthe Caspersen 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题