lombok 基础注解之 @Builder,是什么意思,实际工作中是怎么用的,请举出对应场景和示例,并详细说明。

@Builder 是 Lombok 库中的一个基础注解,用于简化构建器模式的使用。通过 @Builder,我们可以自动为类中的每个公共构造函数生成一个构建器方法,这样就可以通过这些方法来创建类的实例。 实际应用场景和示例: 假设我们有一个 Person 类,它有 nameagegender 三个字段。我们想要创建一个 Person 对象的构建器,可以使用 @Builder 注解。

import lombok.Builder;
import lombok.Getter;
@Getter
@Builder
public class Person {
    private String name;
    private int age;
    private String gender;
}

现在,我们可以使用 PersonBuilder 类来创建 Person 对象。

Person person = Person.builder()
    .name("John")
    .age(30)
    .gender("Male")
    .build();

通过使用 @Builder,我们简化了创建 Person 对象的过程,避免了手动编写每个字段的 setter 方法。同时,这也减少了代码的冗余,提高了代码的可读性和可维护性。 @Builder.Default 是 Lombok 库中 @Builder 注解的一个选项,用于指定某些字段的默认值。通过使用 @Builder.Default,我们可以为 Builder 中的某些字段设置默认值,而不需要在每次调用 Builder 方法时都指定这些值。这使得代码更加简洁,减少了重复的代码。 示例: 假设我们有一个 Car 类,它有 brandmodelyear 三个字段。我们想要为 brand 字段设置默认值为 “Toyota”,并为 year 字段设置默认值为当前年份。我们可以使用 @Builder.Default 注解来实现这个需求。

import lombok.Builder;
import lombok.Getter;
import java.time.LocalDate;
@Getter
@Builder(toBuilder = true) // toBuilder = true 表示启用 toBuilder() 方法,用于链式调用修改已有对象的状态
public class Car {
    private String brand;
    private String model;
    private int year;
    @Builder.Default
    private String defaultBrand = "Toyota"; // 设置默认值为 "Toyota"
    @Builder.Default
    private int defaultYear = LocalDate.now().getYear(); // 设置默认值为当前年份
}

现在,我们可以使用 Car 的 Builder 来创建 Car 对象,并自动应用默认值。

Car car = Car.builder()
    .model("Corolla") // 只指定了 model 字段的值,其他字段将使用默认值
    .build(); // 创建 Car 对象时会自动应用默认值 "Toyota" 和当前年份作为 year 字段的值
  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值