【问题标题】:Exclude toString method generation that comes with Lombok @Data排除 Lombok @Data 自带的 toString 方法生成
【发布时间】:2021-07-04 13:04:01
【问题描述】:

我有一个用@Data 注释的类。但我想排除toString() 方法并提供自定义toString。

我刚刚定义了一个自定义的 toString() 方法,如果我不使用 lombok 并且它似乎有效,我通常会这样做。以下是我的例子。

@Data
class SomeDTO {
    private String property1;
    private String property2;

    private String someReallyHugeString;

    @Override
    public String toString(){
        return "someReallyHugeString size is: " + someReallyHugeString.length() 
                  + "property1 = " + property1 
                  + "property2 = " + property2;
    }

}

但想知道这是否是从@Data 中排除toString() 的正确方法以及我是否遗漏了任何副作用。

【问题讨论】:

  • 不要使用@Data?

标签: java tostring lombok intellij-lombok-plugin


【解决方案1】:

是的

这是正确的方法。您可以提供lombok 生成的任何方法。它将检查该方法是否已存在并跳过生成。

同样的规则适用于构造函数(任何显式构造函数都会阻止 @Data 生成),以及 toString、equals 以及所有的 getter 和 setter

by Lombok Docs

【讨论】:

    【解决方案2】:

    只是不要使用@Data(但提供所有其他注释):

     @Getter
     @Setter
     @RequiredArgsConstructor
     @EqualsAndHashCode
     SomeDTO { .... 
         public String toString(){....}
     }
    

    这样如果不小心删除toString,就不会生成了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-16
      • 1970-01-01
      • 1970-01-01
      • 2020-05-19
      • 1970-01-01
      相关资源
      最近更新 更多