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

问题描述

我有一个@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;
    }

}

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

解决方法

只是不要使用具有以下特性的 @Data(但提供所有其他注释):

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

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

,

这是正确的方式。您可以提供由 {{ field.atribute.all.count }} 生成的任何方法。它将检查该方法已经存在并跳过生成。