最近认识了个好东西,对于我这种懒人来说,简直是完美,相见恨晚啊!!!
Lombok
官网:https://www.projectlombok.org
简介
Reducing Boilerplate Code with Project Lombok
Lombok降低Boilerplate代码。
这里Boilerplate是一个专业术语,用于描述在应用程序中许多重复执行的代码。所以说白了:Lombok要做的就是减少重复代码。至于减少了哪里,我们下面通过代码来看。
使用
IDEA安装Lombok插件
IntelliJ IDEA > Preferencs > Plugins > Browse Repositories
搜索lombok,点击安装。
我这里安装过了,所以没有安装的按键。
重启IDEA,Lombok插件就安装成功了。
导入Lombokjar包
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
编写代码
一个User实体类
不实用Lombok的话
import java.util.Date;
public class User {
/**
*
*/
private Long userId;
/**
*
*/
private String name;
/**
*
*/
private Date createdDate;
/**
*
*/
private Date modifyDate;
public Long getUserId() {
return userId;
}
public void setUserId(Long userId) {
this.userId = userId;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Date getCreatedDate() {
return createdDate;
}
public void setCreatedDate(Date createdDate) {
this.createdDate = createdDate;
}
public Date getModifyDate() {
return modifyDate;
}
public void setModifyDate(Date modifyDate) {
this.modifyDate = modifyDate;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((name == null) ? 0 : name.hashCode());
result = prime * result + ((userId == null) ? 0 : userId.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
User other = (User) obj;
if (name == null) {
if (other.name != null)
return false;
} else if (!name.equals(other.name))
return false;
if (userId == null) {
if (other.userId != null)
return false;
} else if (!userId.equals(other.userId))
return false;
return true;
}
@Override
public String toString() {
return "User [userId=" + userId + ", name=" + name + ", createdDate=" + createdDate + ", modifyDate="
+ modifyDate + "]";
}
}
我们不仅需要对每个字段编写get、set方法,还有类的equals、hashcode和toString方法。当字段多,或者我们需要更改字段属性的时候,还要更改以上说的方法,是不是很麻烦,很啰嗦,很没有技术含量!!!
但是我们用了Lombok一切都不一样了。我们看一下使用Lombok代码:
import lombok.*;
import java.util.Date;
@Data
@Builder
@NoArgsConstructor
@EqualsAndHashCode
@AllArgsConstructor(access = AccessLevel.PRIVATE)
public class User {
/**
*
*/
private Long userId;
/**
*
*/
private String name;
/**
*
*/
private Date createdDate;
/**
*
*/
private Date modifyDate;
}
是不是瞬间干净了。清爽了许多!
这个就是Lombok的作用:
作用
帮助开发人员消除Java的冗长代码减,而消除的地方就是我们Java对象中的get,set等方法。当一个Java bean中字段过多,我们当然可以通过快捷键来编写get,set等方法,但是毫无意义。而且当对字段进行更改的话,对应的方法都需要更改,岂不是很麻烦。当我们使用Lombok后,就可以省去这些代码,Lombok会自动帮我们在IDE中注入代码。
不仅为开发人员节省了大量时间,而且提高了代码可读性。