问题描述
我有一个用 @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 }}
生成的任何方法。它将检查该方法已经存在并跳过生成。