我可以用lombok注释将方法声明为toString吗



是否可以将某个函数foo()声明为toString?具体而言:

int property 1;
int property 2;
int property 3;
boolean bar() {...}
int foo(){
return bar() ? 0 : property2;
}
@Override
public String toString() {
return String.valueOf(foo());
}

现在我想用Lombok注释替换toString((。其输出与当前输出相同。这在龙目岛有可能吗?

lombok的全部目的是"为您编写代码"——如果您已经编写了它,为什么要这样?

您可以做的是在foo((方法上放置一个@ToString.Include注释,这将导致lombok列出调用该方法的结果以及所有字段。如果您的方法与其中一个方法具有相同的名称(或者在将get放在前面并将第一个字母大写后具有相同名称(,则该方法的输出将替换该字段。然后,您可以在@ToString上放置一个标记,表示您只想要显式包含的内容,此时lombok的toString将发出类似于:"YourClass(foo=12)":的内容

@ToString(onlyExplicitlyIncluded=true)
public class YourClass {
int property1, property2, property3;
@ToString.Include
int foo() {
return bar() ? 0 : property2;
}
}

最新更新