iT邦幫忙

2024 iThome 鐵人賽

DAY 7
0

設置預設值

在Spring Boot中使用Lombok的 @Builder 註解來進行物件的建構非常方便。以下是如何設置預設值和部分更新的一些範例:

@Data
@Builder
public class User {
    private String name;
    private int age;

    @Builder.Default
    private String role = "USER";
}

在上面的範例中, role 字段有一個預設值 "USER" 。如果在使用builder模式創建該物件時未設置 role 值,那麼預設值將被使用。

部分更新

假設已經有一個物件,我們可以通過builder模式來進行部分字段的更新。Lombok中的
toBuilder
方法能夠輕鬆做到這一點。

首先,需要在原始類中增加 toBuilder=true 配置:

@Data
@Builder(toBuilder = true)
public class User {
    private String name;
    private int age;

    @Builder.Default
    private String role = "USER";
}

然後,可以使用 toBuilder 方法進行部分更新:

User originalUser = User.builder()
                        .name("Alice")
                        .age(30)
                        .build();

User updatedUser = originalUser.toBuilder()
                               .age(31)
                               .build();

設置預設值
在Spring Boot中使用Lombok的 @Builder 註解來進行物件的建構非常方便。以下是如何設置預設值和部分更新的一些範例:

@Data
@Builder
public class User {
    private String name;
    private int age;

    @Builder.Default
    private String role = "USER";
}

在上面的範例中, role 字段有一個預設值 "USER" 。如果在使用builder模式創建該物件時未設置 role 值,那麼預設值將被使用。

部分更新

假設已經有一個物件,我們可以通過builder模式來進行部分字段的更新。Lombok中的
toBuilder
方法能夠輕鬆做到這一點。

首先,需要在原始類中增加 toBuilder=true 配置:

@Data
@Builder(toBuilder = true)
public class User {
    private String name;
    private int age;

    @Builder.Default
    private String role = "USER";
}

然後,可以使用 toBuilder 方法進行部分更新:

User originalUser = User.builder()
                        .name("Alice")
                        .age(30)
                        .build();

User updatedUser = originalUser.toBuilder()
                               .age(31)
                               .build();
// updatedUser.name will be "Alice"
// updatedUser.age will be 31
// updatedUser.role will be "USER" (default value retained)

上述範例中,我們只更新了 age 字段,其它字段保留原有值。

利用Lombok的 @Builder 註解,可以簡化對象創建以及部分字段更新的操作,使代碼更加簡潔明瞭。


上一篇
Day 6 Lombok 常用註釋 Bulider
下一篇
Day 8 Spring Boot 與 JWT 的基本概念與實作
系列文
Spring Boot微服務架構:API設計與實現27
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言