一. Lombok插件简介
我们知道,Lombok插件是目前Java中使用频率非常高的一款插件,可以在编译阶段自动生成实体类的常用方法。示例如下:
// 没有使用Lombok插件的实体类,需要手动写getter和setter,以及构造方法等
public class Student {
private Integer id;
private String name;
private Integer age;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
// 使用了Lombok插件的实体类
@Data // 此注解自动生成getter和setter,toString,equals和hashCode等方法
@NoArgsConstructor // 此注解生成无参构造函数
@AllArgsConstructor // 此注解生成全参构造函数
public class Student {
private Integer id;
private String name;
private Integer age;
}
从上面的代码中我们可以看出,使用了Lombok后Java实体类的源码会变得非常简洁,且易于修改。那么在idea中该如何安装和使用Lombok插件呢?
二. Lombok插件在idea中的安装和配置
2.1 安装
idea2020.2之前的版本需要自己安装Lombok插件,可以如下操作:
在ideidea2020.2后面的版本中已经集成了Lombok插件,不用手动下载安装。
2.2 配置
idea在2020.2之前的版本中的配置
idea2020.2版本之后的配置:
1.先勾选上图中的地方;
2.添加如下配置,不同的版本可能显示不一样,在VM options后面的框中添加参数。-Djps.track.ap.dependencies=false
三. 基本使用
3.1 在项目中导入lombok依赖
- 在普通项目中导入
在项目中新建一个文件,将下载【下载地址】好的jar包lombok-1.18.12.jar复制到项目中,并添加为library
- 在maven项目中导入
在pom.xml中的依赖处添加依赖
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.12</version>
<scope>provided</scope>
</dependency>
3.2 使用
Lombok插件的使用比较简单,就是在实体类中,只需要写入相应的属性,然后在类上面添加相应的注解即可。例如:
// 使用了Lombok插件的实体类
@Data // 此注解自动生成getter和setter,toString,equals和hashCode等方法
@NoArgsConstructor // 此注解生成无参构造函数
@AllArgsConstructor // 此注解生成全参构造函数
@Builder // 添加相应的实体类的构建器
public class Student {
private Integer id;
private String name;
private Integer age;
}
3.3 常用注解介绍
接下来我给大家介绍一下Lombok插件中的常用注解:
@Setter和@Getter :对类中的属性生成相应的getter和setter方法。
@ToString :生成toString()方法。该注解有以下属性:callSuper:是否输出父类的toString()方法,默认为false。includeFieldNames:是否包含字段名称,默认为true。exclude:排除生成到toString方法中的字段。
@EqualsAndHashCode :生成equals()方法和hashCode()方法。
@NoArgsConstructor :生成无参构造方法。
@AllArgsConstructor :生成全参构造方法。
@Data :相当于@Setter + @Getter + @ToString + @EqualsAndHashCode。
@NonNull:判断是否为空,如果为空,则抛出java.lang.NullPointerException。
@Builder :生成构建器。注意: 会自动生成全参构造方法,可能会导致默认无参构造方法失效。
这些注解的具体用法如下:
@Builder
public class Student {
private Integer id;
private String name;
private Integer age;
}
public class TestMain {
public static void main(String[] args) {
// 使用Builder创建Student对象
final Student student = Student.builder()
.id(1)
.name("张三")
.age(20)
.build();
System.out.println(student);
}
}