Lombok
文章目录
简介
该插件主要是为了减少开发人员的代码编写
下载安装
maven
<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.6</version>
<scope>provided</scope>
</dependency>
特别的:IDEA
Intellij idea开发的话需要安装Lombok plugin,同时设置 Setting -> Compiler -> Annotation Processors -> Enable annotation processing勾选。
使用常用注解
@NonNull
public NonNullExample(@NonNull Object person ) {
}
相当于如下
if (person == null) {
throw new NullPointerException("person"); //抛出时会附带哪个字段为 null
}
@Getter / @Setter
public class GetterSetterExample {
@Getter @Setter private int id= 10;
@Setter(AccessLevel.PROTECTED) private String name;
}
@ToString
@ToString(exclude = {"id","name"})
public class User {
private Integer id;
private String name;
private String phone;
}
//实际生成的toString()方法
public String toString(){
return "User(phone=" + phone + ")";
}
@NoArgsConstructor @AllArgsConstructor @RequiredArgsConstructor
@NoArgsConstructor
- 生成一个没有参数的构造函数。
- 如果有未赋初始值的 final 字段,将导致编译器错误,可以使用 @NoArgsConstructor(force = true),该注解将初始化所有未赋初始值的 final 字段值为 0/ false/ null。
- 对于具有约束的字段(如@NonNull字段),不会生成任何检查。
- 有些时候需要无参构造函数(如 Hibernate 、Service Provider Interface)。
- 此注解主要与@Data 等生成带参构造函数的注解一起使用。
@AllArgsConstructor
为类中的每个字段生成一个带有1个参数的构造函数。检查标记为@NonNull的字段。
@RequiredArgsConstructor
- 为每个需要赋值的字段生成一个带有1个参数的构造函数。
- 所有未初始化的final字段都会获得一个参数,以及标记为 @NonNull 且未初始化的字段。
- 对于标记为的字段@NonNull,还会生成显式非空检查。构造函数将抛出NullPointerException,效果同 @NonNull。
- 参数的顺序与字段在代码中的声明顺序相匹配。
@EqualsAndHashCode
可以使用@EqualsAndHashCode生成equals(Object other)和hashCode()方法的实现来注释任何类定义。默认情况下,它将使用所有非静态,非瞬态字段,但您可以通过使用@EqualsAndHashCode.Include或标记类型成员来修改使用哪些字段(甚至指定要使用各种方法的输出)@EqualsAndHashCode.Exclude。或者,您可以通过标记@EqualsAndHashCode.Include和使用来准确指定您希望使用的字段或方法@EqualsAndHashCode(onlyExplicitlyIncluded = true)。
@Data
标志该类为数据类, 自动为所有字段添加@ToString, @EqualsAndHashCode, @Getter方法,为非final字段添加@Setter,和@RequiredArgsConstructor!
与 kotlin 语言中的 data 类似
@Data
public Class Person{
}
@Cleanup
自动调用 close() 方法。
@Cleanup InputStream in = new FileInputStream(xxx);
官方文档 和 参考
官方文档: https://projectlombok.org/features/index.html
文章参考
https://blog.csdn.net/qq_37192800/article/details/79785906
https://www.cnblogs.com/holten/p/5729226.html