【问题标题】:Update object which has used builder method in Java8 using Lombok [duplicate]使用 Lombok 在 Java8 中使用 builder 方法更新对象 [重复]
【发布时间】:2020-06-13 23:22:19
【问题描述】:

您好,我有以下代码

        BBResponse bbStmtResponse = BBResponse.builder().result(IN_PROGRESS).build();

经过几次验证,我想更新对象“bbStmtResponse”以设置为其他属性

bbStmtResponse.builder().status(SUCCESS).build();

当我打印 bbStmtResponse 对象时,它不包含应该是“IN_PROGRESS”的“result”属性值。我该如何克服这个问题,而不是使用 setter 方法,因为要设置更多属性

【问题讨论】:

  • 看起来您需要在 builder 方法中获取“上一个”实例 - 如果您了解 Builder 模式的作用,那么这对您来说会容易得多。没有什么要“克服”的——当你打电话给builder()——你开始一个新的对象创建

标签: java-8 lombok


【解决方案1】:

两种方式:

  • 使用toBuilder方法
@Builder(toBuilder = true)
public BBResponse

然后使用bbStmtResponse.toBuilder().status(SUCCESS)

  • 使用@Setter 启用构建器和设置器:
@Setter
@Builder(toBuilder = true)
public BBResponse

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-09
    • 1970-01-01
    • 2021-06-21
    • 1970-01-01
    • 2020-07-29
    • 1970-01-01
    相关资源
    最近更新 更多