排除Lombok @Data自带的toString方法生成

Exclude toString method generation that comes with Lombok @Data

我有一个用 @Data 注释的 class。但我想排除 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(但提供所有其他注释)具有:

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

这样如果你不小心去掉了toString,就不会生成

.

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

The same rule applies to the constructor (any explicit constructor will prevent @Data from generating one), as well as toString, equals, and all getters and setters

by Lombok Docs