05. 《Lombok 实战 —— @Data & @Value》

本文详细介绍了Lombok的@Data和@Value注解的实战使用、配置详解及注意事项。@Data提供字段的getter/setter、equals、hashCode、toString等,而@Value则创建不可变类,无setter,类和字段默认final。注意@Data使用时可能会影响无参构造函数,@Value默认生成全参数构造器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

《Lombok 实战 —— @Data & @Value》

All together now: A shortcut for @ToString, @EqualsAndHashCode, @Getter on all fields, @Setter on all non-final fields, and @RequiredArgsConstructor!

1. @Data

1.1 @Data 实战使用

@Data是一个方便的快捷方式注释,它将@ToString@EqualsAndHashCode@Getter/@Setter@RequiredArgsConstructor的特性捆绑在一起。换句话说,@Data生成通常与简单POJOsbeans配合使用,它会进行以下操作:

  • 生成所有字段的getter,所有非final字段的setter
  • 实现相应类字段的toStringequals和hashCode
  • 构造方法将初始化所有没有初始化值的final字段,和所有使用@NonNull标记却没有初始化值的非final字段,从而确保字段永远不为空。

估计你听着会有点绕,先来一个小菜常常鲜!

@Data
public class User {
   
   
    private final Integer id;
    private final String zipCode = "215500";
    @NonNull
    private String username;
    private String password;
}

// 编译后:
public class User {
   
   
    private final Integer id;
    private final String zipCode = "215500";
    @NonNull
    private String username;
    private String password;

    // 生成带有未初始化的 final 字段,以及标有 @NonNull 的字段
    public User(Integer id, @NonNull String username) {
   
   
        if (username == null) {
   
   
            throw new NullPointerException("username is marked @NonNull but is null");
        } else {
   
   
            this.
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

「已注销」

滚蛋吧,结核菌!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值