使用 lombok 构建器获取字段值

问题描述 投票:0回答:1

是否可以检索由 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
块返回,但在我看来,方法中的多次返回会导致代码更难遵循,所以我想避免这种情况,只在方法末尾返回构建器。

java lombok builder anti-patterns
1个回答
0
投票

我肯定会尝试找到更好的方法,但是...... 不确定是否可以添加变量布尔成功来避免它,但您可以构建它获取值并继续使用另一个构建器实例:

Something temp= builder.build();
boolean success= temp.isSuccess();
builder= temp.toBuilder(); 
© www.soinside.com 2019 - 2024. All rights reserved.