@Data
类注解, 综合注解; 相当于@Getter + @Setter + @ToString + @EqualsAndHashCode + @RequiredArgsConstructor
@Value
类注解,综合注解; 相当于@Getter + @ToString + @EqualsAndHashCode + @RequiredArgsConstructor
@Getter
作用于属性上,自动生成 getter方法
@Setter
作用于属性上,自动生成 setter方法
@ToString
自动生成toString()方法 该注解有以下多个属性可以进一步设置:
- callSuper:是否输出父类的toString方法,默认为false
- includeFieldNames:是否包含字段名称,默认为true
- exclude:排除生成tostring的字段
- @ToString.Exclude 字段注解,排除不需要在 toString 中出现的字段。
- @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
自动生成全参数构造函数。
@NotNull
生成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 官方网站 查询