文章目录
前言
hi,大家好 我是纯洁阿运,今天给大家介绍一个工具Lombok。它主要是解决了什么呢。之前我们的entity中存在大量的/get/set/toString/constructor。Lombok就是用来解放这些内容的,通过注解的形式快速的处理这些内容~提示:以下是本篇文章正文内容,下面案例可供参考
一、Lombok是什么?
Project Lombok 是一个 Java 库,可自动插入您的编辑器并构建工具,为您的 Java 增添趣味。 永远不要再编写另一个 getter 或 equals 方法,通过一个注释,您的类就有一个功能齐全的构建器,自动化您的日志变量等等。
二、使用步骤
1.引入Maven
代码如下(示例):
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.2</version>
</dependency>
2.安装Idea Lombok插件
安装并重启Idea
2.使用
@Getter/@Setter
自动生成 getter/setter
使用Lombok后:
@Getter
@Setter
public class Users {
private String id;
private String cnName;
}
使用Lombok前:
public class Users {
private String id;
private String cnName;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getCnName() {
return cnName;
}
public void setCnName(String cnName) {
this.cnName = cnName;
}
}
@ToString
自动重写 toString() 方法,会印出所有变量
使用Lombok后:
@ToString
public class Users {
private String id;
private String cnName;
}
使用Lombok前:
public class Users {
private String id;
private String cnName;
@Override
public String toString() {
return "UsersTest{" +
"id='" + id + '\'' +
", cnName='" + cnName + '\'' +
'}';
}
}
@EqualsAndHashCode
自动生成 equals(Object other) 和 hashcode() 方法
使用Lombok 后:
@EqualsAndHashCode
public class Users {
private String id;
private String cnName;
}
使用Lombok 前:
public class Users {
private String id;
private String cnName;
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Users users = (Users) o;
return id.equals(users.id) &&
cnName.equals(users.cnName);
}
@Override
public int hashCode() {
return Objects.hash(id, cnName);
}
}
@NoArgsConstructor
生成无参构造方法
使用Lombok后:
@NoArgsConstructor
public class Users {
private String id;
private String cnName;
}
使用Lombokq前:
public class Users {
private String id;
private String cnName;
public UsersTest() {
}
}
@AllArgsConstructor
包含所有参数的构造方法
使用Lombok后:
@AllArgsConstructor
public class Users {
private String id;
private String cnName;
}
使用Lombokq前:
public class Users {
private String id;
private String cnName;
public Users(String id, String cnName) {
this.id = id;
this.cnName = cnName;
}
}
@RequiredArgsConstructor
指定特定参数的构造方法,凡是有final修饰的参数就会生成构造方法中,如果所有的属性都没有使用final修饰那么就会生成一个无参的构造方法
使用Lombok后:
@RequiredArgsConstructor
public class Users {
private final String id;
private String cnName;
}
使用Lombokq前:
public class Users {
private String id;
private String cnName;
public Users(String id) {
this.id = id;
}
}
@Data
一个整合包,里面包含了 ,也是我们最常用,最实用的一个注解
@Getter/@Setter
@ToString
@EqualsAndHashCode
@RequiredArgsConstructor
使用Lombok后:
@Data
public class Users {
private final String id;
private String cnName;
}
使用Lombokq前:
public class Users {
private String id;
private String cnName;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getCnName() {
return cnName;
}
public void setCnName(String cnName) {
this.cnName = cnName;
}
@Override
public String toString() {
return "UsersTest{" +
"id='" + id + '\'' +
", cnName='" + cnName + '\'' +
'}';
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
UsersTest usersTest = (UsersTest) o;
return Objects.equals(id, usersTest.id) &&
Objects.equals(cnName, usersTest.cnName);
}
@Override
public int hashCode() {
return Objects.hash(id, cnName);
}
public Users() {
}
}
总结
以上就是今天要讲的内容,本文仅仅简单介绍了Lombok的使用,而Lombok提供了大量能使我们快速便捷地处理的注解,大家继续探索吧~
总而言之,一切能够提升效率的内容都值我们花时间去学习,汽车总比马车强
来都来了不点个赞 留个言 收藏一下吗?