為什么要使用lombok啦粹?
????應(yīng)用場景:在JavaEE項目中經(jīng)常使用bean,entity等類,絕大部分數(shù)據(jù)類中都需要生成get /set 方法讲坎、重載toString借跪、 equals和hashCode方法政己。
????使用優(yōu)點:
????????1.雖然在IDEA開發(fā)環(huán)境下都有自動生成這些代碼的快捷方式,但自動生成這些代碼后掏愁,如果bean中的屬性一旦有修改歇由、刪除或增加時,需要重新生成或刪除get /set等方法果港,給代碼維護增加負擔沦泌。
????????2.即使需要在這些方法中需要做額外的操作,只需要在對應(yīng)類中手動重寫即可辛掠。
未使用lombok之前谢谦,我們?nèi)绾巫龅模?/h2>
在類中alt+enter,然后選擇需要的方法萝衩。
如下:
public class Student {
private String name;
private String studentId;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getStudentId() {
return studentId;
}
public void setStudentId(String studentId) {
this.studentId = studentId;
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", studentId='" + studentId + '\'' +
'}';
}
}
如何使用lombok回挽?
一 在idea中安裝lombok插件
public class Student {
private String name;
private String studentId;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getStudentId() {
return studentId;
}
public void setStudentId(String studentId) {
this.studentId = studentId;
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", studentId='" + studentId + '\'' +
'}';
}
}
????1.依次點擊Preferences - Plugins,搜索lombok猩谊,最后點擊Lombok Plugin (對千劈,就下載最多的那個)intall。
????2.重啟idea即可使用
image
二 在項目對于的xml文件中添加maven依賴
<!--lombok-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
三 示例代碼及說明
/**
* 如果沒有添加@Setter注解预柒,則無法使用setAge()等方法队塘。
* 使用lombok之后,省去了許多沒必要的get宜鸯,set憔古,toString,equals淋袖,hashCode代碼鸿市,
簡化了代碼。
* 注:@Data注解的作用相當于 @Getter @Setter @RequiredArgsConstructor
@ToString @EqualsAndHashCode的合集即碗。
* 注:@Log 省去了在LombokTest中添加 getLogger的如下代碼: * private static final java.util.logging.Logger log =
java.util.logging.Logger.getLogger(LogExample.class.getName()); */
@Setter
@Getter
@ToString
@EqualsAndHashCode //@Data
public class Student {
private String name;
private int age;
private String male;
private String studentNo;
}
四 測試程序
@Log
public class LombockTest {
public static void main(String[] args) {
//創(chuàng)建第一個學生對象
Student student = new Student();
student.setAge(19);
student.setMale("male");
student.setName("Spring Boot");
student.setStudentNo("2017");
System.out.println(student.toString());
//創(chuàng)建第二個學生對象
Student student2 = new Student();
student2.setAge(19);
student2.setMale("male");
student2.setName("Spring Boot");
student2.setStudentNo("2017");
//判斷兩個對象的引用是否相等
System.out.println(student.equals(student2));
student2.setStudentNo("2018");
System.out.println(student.equals(student2));
log.info("lombok test"); }
}
五 運行結(jié)果
Student(name=SPring Boot焰情,age=19,male=male剥懒,studentNo=2017)
true
false
ps:在使用了lombok之后内舟,又重寫了該方法,會覆蓋此方法初橘,代碼就不貼了验游,親測有效充岛。