文章目录
Lombok简介
Lombok,一个第三方的Java字节修改库,用来帮助你自生成一些“冗余”代码的工具
优缺点
- 优点:省代码,省很多的代码
- 缺点: 你的程序的源代码一般只包含.java文件,除了发布的时候,不会有人把.class文件上传到代码控制库里面。这是因为你写的是源代码,字节码只是你写的代码编译的必然结果而已。然而,使用这种第三方的工具,其实破坏了编译的过程,增加了依赖,也就是Lombok这个工具。
使用
@Data
@Data=@Getter+@Setter+@EqualsAndHashCode+@ToString+@RequiredArgsConstructor
@Value
@Value=@Getter+@EqualsAndHashCode+@ToString+@AllArgsConstructor
@Getter
给所有非静态字段添加get方法
@Setter
给所有非final静态字段添加set方法
@NonNull
- 添加在字段上该字段生成的set方法和RequiredArgsConstructor将会添加非空判断(添加为空将会抛出空指针异常)
- 添加在方法参数上同上
@Cleanup
将会调用局部变量的Closeabl中close方法(不过是将该变量后面都会包括性能不好)
@NoArgsConstructor, @RequiredArgsConstructor,@AllArgsConstructor
- @NoArgsConstructor:生成一个空的构造方法
- @RequiredArgsConstructor: 给所有final字段生成一个构造方法(static不包括)
- @AllArgsConstructor:给所有字段生成一个构造方法(static不包括)
@Builder
在该类生成一个Builder模式
@SneakyThrows
try-catch方法上的所有Throwable异常
@Synchronized
静态方法使用对象锁(用生成全局 L O C K 私 有 不 可 变 静 态 数 组 对 象 锁 ) , 非 静 态 方 法 使 用 对 象 锁 ( 用 生 成 全 局 LOCK私有不可变静态数组对象锁),非静态方法使用对象锁(用生成全局 LOCK私有不可变静态数组对象锁),非静态方法使用对象锁(用生成全局lock私有不可变对象锁)
@ToString @ToString.Exclude @ToString.Include
生成对象toString方法,字段有@ToString.Exclude注解将不会出现在toStrign中,字段有@ToString.Include注解将会出现在toStrign中(和of一起使用),doNotUseGetters属性true将不会使用get方法