Lombok注解 再见到别不认识了

发布于:2022-12-02 ⋅ 阅读:(735) ⋅ 点赞:(0)

@Data

        类注解, 综合注解; 相当于@Getter + @Setter + @ToString + @EqualsAndHashCode@RequiredArgsConstructor

@Value

        类注解,综合注解; 相当于@Getter + @ToString + @EqualsAndHashCode@RequiredArgsConstructor

@Getter

        作用于属性上,自动生成getter方法

@Setter

        作用于属性上,自动生成setter方法

@ToString

        自动生成toString()方法 该注解有以下多个属性可以进一步设置:

  • callSuper:是否输出父类的toString方法,默认为false
  • includeFieldNames:是否包含字段名称,默认为true
  • exclude:排除生成tostring的字段
  1. @ToString.Exclude 字段注解,排除不需要在 toString 中出现的字段。
  2. @ToString.Include  字段注解,标记需要出现在 toString 中的字段。

@EqualsAndHashCode

根据类所拥有的非静态字段自动重写 equals() 方法和 hashCode() 方法。

你也可以用

  • @EqualsAndHashCode.Exclude 排除字段在重写的 equals 方法和 hashCode 方法中。
  • @EqualsAndHashCode.Include  指定字段在重写的 equals 方法和 hashCode 方法中。

@RequiredArgsConstructor

作用于类,生成包含 final 或 @NonNull 注解的成员变量的构造方法。

用法可以代替 @Autowrited 使用

@RequiredArgsConstructor
public class Test{
    
    private final TestService testService;

}
public class Test{
    
    @Autowrited
    private TestService testService

}

@NoArgsConstructor

自动生成无参数构造函数。

@AllArgsConstructor

自动生成全参数构造函数。

@NonNull

生成setter方法时会参数是否为空检查,  为字段赋值时(即调用字段的setter方法时),如果传的参数为null,则会抛出空异常NullPointerException

@Builder

生成当前类的字段构建方法。生成 builder() 方法,并且直接根据字段名称方法进行字段赋值,最后使用 build() 方法构建出一个实体对象。

@SuperBuilder

生成父类的字段构建方法。

@Synchronized

作用于方法,可以替换 synchronized 关键字或 lock 锁

@Cleanup

用于确保已分配的资源被释放,自动帮我们调用close()方法。比如IO的连接关闭。

@SneakyThrows

在没有 throws 关键字的情况下,隐蔽地抛出受检查异常。


其他注解

@Singular 作用于集合字段,需要配合 @Builder 使用。
@val 作用于类、变量,主要用于声明变量的类型,注解将从初始化程序表达式中推断类型,生成的变量是 final 类型。
@var 和 @val 一样,作用于类、变量,主要用于声明变量的类型,注解将从初始化程序表达式中推断类型,两者区别在于 var 不加 final。
@With 作用于类、变量,生成构造方法以及with + 变量名的方法,返回当前对象。
@WithBy 只作用于类,只生成with + 变量名的方法,返回当前对象。
@Generated 用于标记类、变量、方法是自动生成的,没什么大用。

更多详情请查看 Lombok 官方网站 查询


网站公告

今日签到

点亮在社区的每一天
去签到