lombok注解的特殊用法

1. 背景

之前在Spring框架中,一直使用@AutoWired注解注入成员变量。现在使用公司封装的框架做标品开发,突然发现了@AllArgsConstructor、@RequiredArgsConstructor的特殊用法,类似于Spring中的构造函数注入。

2. 场景

报错:引入的成员变量未被初始化。
在这里插入图片描述

解决措施:加上@AllArgsConstructor注解或@RequiredArgsConstructor注解。
在这里插入图片描述

3. lombok详细介绍

3.1. 构造方法相关注解

@NoArgsConstructor, @RequiredArgsConstructor, @AllArgsConstructor。是Lombok插件三种生成不同构造方法的注解,来完成项目中不同构造方法的需求。

  • @NoArgsConstructor : 生成一个无参数的构造方法
    如果因为final字段未初始化导致构造失败,则会导致编译失败。可以使用@NoArgsConstructor(force
    = true)参数,从而强制将未初始化的fianl字段赋值为 0 / false / null。 对于具有约束的字段(例如 @NonNull 字段),不会进行检查。

  • @AllArgsContructor: 会生成一个包含所有变量的构造方法。
    为类中的每个字段生成一个具有1个参数的构造函数。 标记为@Non Null的字段会进行空值检查。

  • @RequiredArgsConstructor: 会生成一个包含常量,和标识了NotNull变量的构造方法。生成的构造方法是私有的private。
    为有需要特殊处理的字段生成带有一个参数的构造函数,所有未能初始化的fianl字段,以及被标记为@NonNull且在声明时没有初始化的字段,都是该构造函数的参数。
    参数的顺序与类中字段出现的顺序是保持一致的,对于@NonNull的字段也会进行空值检查,如果不符合校验规则,抛出空指针异常。

3.2 其他常用注解

  • @Getter and @Setter
    可以用@Getter / @Setter注释字段(也可以注释到类上的—(在实体类中常用且推荐)),lombok会自动生成默认的Getter/Setter方法。

  • @ToString
    自动生成toString()方法,默认情况,按顺序(以“,”分隔)打印你的类名称以及每个字段。也可以设置不包含哪些字段/@ToString(exclude = {“id”,“name”})

  • @Data
    注解在类上, 为类提供读写属性, 此外还提供了 equals()、hashCode()、toString() 方法

  • @Slf4j
    注解在类上, 为类提供一个属性名为 log 的 log4j 的日志对象

官方文档

官方文档地址:https://projectlombok.org/features/all

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值