Intellij IDEA安裝lombok插件及使用詳解
項目中經(jīng)常使用bean
,entity
等類,絕大部分數(shù)據(jù)類類中都需要get
、set
、toString
、equals
和hashCode
方法,雖然eclipse
和idea
開發(fā)環(huán)境下都有自動生成的快捷方式,但自動生成這些代碼后,如果bean
中的屬性一旦有修改、刪除或增加時,需要重新生成或刪除get/set
等方法,給代碼維護增加負擔(dān)。而使用了lombok
則不一樣,使用了lombok
的注解(@Setter,@Getter,@ToString,@@RequiredArgsConstructor,@EqualsAndHashCode或@Data)之后,就不需要編寫或生成get/set
等方法,很大程度上減少了代碼量,而且減少了代碼維護的負擔(dān)。故強烈建議項目中使用lombok
,去掉bean中g(shù)et、set、toString、equals和hashCode等方法的代碼。
一、實戰(zhàn)
1.安裝lombok插件:
具體流程如圖:
1.1
1.2
1.3
2.添加lombok的maven的pom.xml依賴:
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.16.10</version> </dependency>
3. 示例代碼Student.java
package com.lombok.demo; import lombok.EqualsAndHashCode; import lombok.Getter; import lombok.Setter; import lombok.ToString; /** **/ @Setter @Getter @ToString @EqualsAndHashCode public class Student { private String name; private int age; private String male; private String studentNo; }
4. 測試類LombokTest.java
package com.lombok.demo; import lombok.extern.java.Log; @Log public class LombokTest { public static void main(String[] args) { Student student = new Student(); student.setAge(27); student.setMale("man"); student.setName("lance"); student.setStudentNo("2017"); System.out.println(student.toString()); Student student2 = new Student(); student2.setAge(27); student2.setMale("man"); student2.setName("lance"); student2.setStudentNo("2017"); System.out.println(student.equals(student2)); student2.setStudentNo("2018"); System.out.println(student.equals(student2)); log.info("lombok test"); } }
5. 輸出結(jié)果:
Student(name=lance, age=27, male=man, studentNo=2017)
true
false
lombok test
結(jié)果分析,如果沒有添加@Setter
注解,則LombokTest
中的student
示例無法使用setAge()
等方法。使用lombok
之后,省去了許多沒必要的get,set,toString,equals,hashCode代碼,簡化了代碼編寫,減少了代碼量。
另外@Data
注解的作用相當(dāng)于 @Getter @Setter @RequiredArgsConstructor @ToString @EqualsAndHashCode的合集。
另外@Log
省去了在LombokTest
中添加 getLogger
的如下代碼:
private static final java.util.logging.Logger log = java.util.logging.Logger.getLogger(LogExample.class.getName());
看,簡單吧!
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接
相關(guān)文章
Java中synchronized關(guān)鍵字引出的多種鎖 問題
synchronized關(guān)鍵字是JAVA中常用的同步功能,提供了簡單易用的鎖功能。這篇文章主要介紹了Java中synchronized關(guān)鍵字引出的多種鎖問題,需要的朋友可以參考下2019-07-07JAVAEE中用Session簡單實現(xiàn)購物車功能示例代碼
本篇文章主要介紹了JAVAEE中用Session簡單實現(xiàn)購物車功能示例代碼,非常具有實用價值,需要的朋友可以參考下。2017-03-03玩轉(zhuǎn)spring boot 結(jié)合jQuery和AngularJs(3)
玩轉(zhuǎn)spring boot,這篇文章主要介紹了結(jié)合jQuery和AngularJs,玩轉(zhuǎn)spring boot,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-01-01IntelliJ?IDEA運行SpringBoot項目的詳細步驟
這篇文章主要介紹了IntelliJ?IDEA如何運行SpringBoot項目,步驟一配置maven,步驟二配置JDK環(huán)境,緊接著通過步驟三檢查數(shù)據(jù)庫的配置,最后一步數(shù)據(jù)庫連接,本文給大家介紹的非常詳細,需要的朋友可以參考下2022-08-08@Transactional跟@DS動態(tài)數(shù)據(jù)源注解沖突的解決
這篇文章主要介紹了@Transactional跟@DS動態(tài)數(shù)據(jù)源注解沖突的解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-09-09