项目开发的时候,发现原本的项目代码实体类中没有属性的getter和setter
项目中的代码是这样的东东
但是在实例化该对象的时候,又发现会调用这些方法
PartyType partyType = new PartyType();
partyType.setId(dingDingDepartMentVO.getId());
partyType.setName(dingDingDepartMentVO.getName());
很是不明白,然后就有前辈告诉我—–“lombok”
所以就是搜索了一些资料来看看,lombok是为了消除创建实体类时候需要很多的冗余代码所设计的,来看看具体的事例:
没有使用lombok的情况:
public class Student {
private Integer id;
private String studentid;
private String studentname;
private String password;
private Integer grade;
private String studentTabcol;
private Date unusedbegintime;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getStudentid() {
return studentid;
}
public void setStudentid(String studentid) {
this.studentid = studentid == null ? null : studentid.trim();
}
public String getStudentname() {
return studentname;
}
public void setStudentname(String studentname) {
this.studentname = studentname == null ? null : studentname.trim();
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password == null ? null : password.trim();
}
public Integer getGrade() {
return grade;
}
public void setGrade(Integer grade) {
this.grade = grade;
}
public String getStudentTabcol() {
return studentTabcol;
}
public void setStudentTabcol(String studentTabcol) {
this.studentTabcol = studentTabcol == null ? null : studentTabcol.trim();
}
public Date getUnusedbegintime()
{
return unusedbegintime;
}
public void setUnusedbegintime(Date unusedbegintime)
{
this.unusedbegintime = unusedbegintime;
}
@Override
public String toString() {
return "Student{" +
"id=" + id +
", studentid='" + studentid + '\'' +
", studentname='" + studentname + '\'' +
", password='" + password + '\'' +
", grade=" + grade +
", studentTabcol='" + studentTabcol + '\'' +
", unusedbegintime=" + unusedbegintime +
'}';
}
}
这是使用了lombok的情况:
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Student {
private Integer id;
private String studentid;
private String studentname;
private String password;
private Integer grade;
private String studentTabcol;
private Date unusedbegintime;
}
相信不用多说什么,大家也能看到两种的区别。
@Data 该注解能够自动创建出来get、set、toString、eaquls、hashCode等方法
@NoArgsConstructor 这个是无参构造器
@AllArgsConstructor 全参构造器
@Setter set方法
@Getter get方法
当然还有一些具体的用法和详细的问题可以参考官方网站,这里有一个小视频,讲的挺好的
Tip:在IJ安装lombok的插件
首先下载lombok的依赖包,官网就能直接下载
如果是maven中的话,在pom.xml中添加依赖
org.projectlombok
lombok
1.14.4
然后选择plugins,输入lombok,没有的话选择下面中间的按钮,就会自动安装
接下来就能够实用了,当然这种方法没有谁说一定比传统的好,希望能给想了解lombok的用户有一点点帮助