【问题标题】:Edit lombok getter method name for boolean member having prefix "has"为具有前缀“has”的布尔成员编辑 lombok getter 方法名称
【发布时间】:2017-03-08 10:43:43
【问题描述】:

我在 lombok 中有一个布尔变量 hasObject,它生成 isHasObject()。我正在使用@Data lombok 注释。如何将方法更改为hasObject()

【问题讨论】:

标签: java java-8 lombok


【解决方案1】:

你的情况可能是:

 class XY : Object {
      @Getter(fluent = true)
      public boolean hasObject;
 }

 @Accessors(fluent = true)
 class XY : Object {
      public boolean hasObject;
 }

根据文档:

fluent - 一个布尔值。如果为 true,则 Pepper 的 getter 就是 Pepper(),而 setter 是 Pepper(T newValue)。此外,除非指定,chain 默认为 true。 默认值:假。

【讨论】:

  • 主要问题是它并不只适用于一个变量:-/ @Getter(fluent=true) 不适用于 1.18.6.0 和 @Accessor 是很大程度上 cz 它影响整个类
  • @Getter(fluent = true) 无法编译
  • stackoverflow.com/a/62953224/5625736 如this answer所述,可以在字段中使用访问器。
【解决方案2】:

我从lombok-how-to-customise-getter-for-boolean-object-field 那里得到了帮助。 这样,我将拥有更改访问器级别和旧式代码获取器,

@Getter(AccessLevel.NONE) private boolean hasObject;

public boolean hasObject() {
    return hasObject;
}

我将保持这个问题的开放性。这是更改 getter 方法名称的唯一方法吗,否则我将等待更好的建议。

【讨论】:

    【解决方案3】:

    结合AccessorsGetter,您可能会得到以下结果:

     class ExampleClass {
          @Accessors(fluent = true)
          @Getter
          private boolean hasObject;
     }
    

    相当于Vanilla Java:

    class ExampleClass {
        
        private boolean hasObject;
    
        public hasObject() {
            return hasObject;
        }
    

    我猜这就是你想要的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-09
      • 2022-06-15
      • 2017-07-25
      • 2021-05-21
      相关资源
      最近更新 更多