是否可以检索由 lombok 生成的构建器上的字段值?
final var builder = Something.builder();
try {
// ... something that might break
}
catch (Throwable t) {
builder.error("Something went wrong.");
builder.success(false);
}
// don't continue if the builder is already marked as not-successful
if (builder.isSuccess() != null && builder.isSuccess()) {
// ... do some more work / set more fields on the builder
}
return builder.build();
lombok 构建器似乎不会公开它们可以构建的字段的 getter,因此在上面的代码中,
builder.isSuccess()
不存在。是否可以这样做,或者这是一种反模式?
另一种方法是从
catch
块返回,但在我看来,方法中的多次返回会导致代码更难遵循,所以我想避免这种情况,只在方法末尾返回构建器。
我肯定会尝试找到更好的方法,但是...... 不确定是否可以添加变量布尔成功来避免它,但您可以构建它获取值并继续使用另一个构建器实例:
Something temp= builder.build();
boolean success= temp.isSuccess();
builder= temp.toBuilder();