J2SE - Lombok自動生成實體方法的工具類庫的使用
一、相關說明
Lombok是一個可以通過註解形式在編譯原始碼的時候生成對應getter、setter、equals、hashcode、toString等方法的工具類庫,幫助我們消除重複工作和簡化相關程式碼
官方地址:https://projectlombok.org/;Github地址:https://github.com/rzwitserloot/lombok
二、外掛安裝
下載lombok.jar包並執行,點選安裝介面中 Specify location按鈕,選中eclipse.exe, 點選Install/Update,即可安裝。安裝原理即在eclipse.ini中設定javaagent屬性
三、新增依賴
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.2</version>
</dependency>
四、常用註解
@Getter: 註解在 類 上,會對所有的非靜態(non-static)屬性生成Getter方法,放在屬性上,會對該屬性生成Getter方法。並可以指定Getter方法的訪問級別
@Setter: 放在 類 上,會對所有的非靜態(non-static)屬性生成Setter方法,放在屬性上,會對該屬性生成Setter方法。並可以指定Setter方法的訪問級別
@NoArgsConstructor: 註解在 類 上;為類提供一個無參的構造方法。
@RequiredArgsConstructor: 註解在 類 上;使用類中所有帶有 @NonNull 註解的或者帶有 final 修飾的成員變數生成對應的構造方法
@AllArgsConstructor: 註解在 類 上;為類提供一個全參的構造方法,加了這個註解後,類中不提供預設構造方法
@EqualsAndHashCode: 註解在 類 上;預設情況下,會使用所有非瞬態(non-transient)和非靜態(non-static)欄位來生成equals和hascode方法,也可以指定具體使用哪些屬性
@NonNull: 註解在 屬性 上,會自動產生一個關於此引數的非空檢查,如果引數為空,則丟擲一個空指標異常。
@Cleanup: 這個註解用在 變數 前面,可以保證此變數代表的資源會被自動關閉,預設是呼叫資源的 close() 方法,如果該資源有其它關閉方法,可使用 @Cleanup(“methodName”) 來指定要呼叫的方法
@ToString: 註解在 類 上;生成toString方法,預設情況下,會輸出類名、所有屬性,屬性會按照順序輸出,以逗號分割。,引數includeFieldNames來控制輸出中是否包含的屬性名稱,callSuper輸出父類屬性
@Value: 註解在 類 上,會生成含所有引數的構造方法,get 方法,此外還提供了equals、hashCode、toString 方法
@SneakyThrows: 註解在 方法 上,可以將方法中的程式碼用 try-catch 語句包裹起來,捕獲異常並在 catch 中用 Lombok.sneakyThrow(e) 把異常丟擲,可以使用 @SneakyThrows(Exception.class) 的形式指定丟擲哪種異常
@Synchronized: 註解在 靜態(類) 方法 或者 例項 方法 上,效果和 synchronized 關鍵字相同,區別在於鎖物件不同,對於靜態方法和例項方法,synchronized 關鍵字的鎖物件分別是類的 class 物件和 this 物件,而 @Synchronized 的鎖物件分別是 私有靜態 final 物件 lock 和 私有 final 物件 lock
@Log4j: 註解在 類 上;為類提供一個 屬性名為 log 的 log4j 日誌物件,提供預設構造方法
@Slf4j:註解在 類 上;等同於:private final Logger logger = LoggerFactory.getLogger(XXX.class);
@Data: 註解在 類 上;包含@ToString, @EqualsAndHashCode, 所有屬性的@Getter, 所有non-final屬性的@Setter和@RequiredArgsConstructor的組合,通常情況下,基本上使用這個註解就足夠了
相關文章
- generatorConfig自動生成實體類以及自定義生成註釋的方法
- IDEA自動生成實體類Idea
- Panda ORM原始碼-資料庫表自動生成Java實體類ORM原始碼資料庫Java
- 寫一個工具生成資料庫實體類資料庫
- 基於AbstractProcessor擴充套件MapStruct自動生成實體對映工具類套件Struct
- java使用jaxb解析XML(含根據xml自動生成實體類)JavaXML
- SpringBoot使用JPA根據實體類自動生成相應表-mysqlSpring BootMySql
- 利用FreeSql.Generator自動根據資料庫表動態生成實體類SQL資料庫
- 帶你實現一個簡單的MYSQL資料庫生成實體類工具MySql資料庫
- C#連線Oracle資料庫,通過EF自動生成與資料庫表相關的實體類C#Oracle資料庫
- BigCode:使用AI自動生成程式碼的開源工具GCAI開源工具
- Bean類自動生成判斷null值的Set()和Get()方法BeanNull
- IDEA不使用lombok,如何快速生成get和set方法IdeaLombok
- 無需手寫,自動生成Flutter/Dart實體類檔案FlutterDart
- 【乾貨分享】C# 實體類生成工具C#
- idea自動建立實體類Idea
- [xmlbeans]自動生成讀寫xml的java類XMLBeanJava
- abp框架寫實體類並生成對應的資料庫框架資料庫
- 一個根據資料庫自動生成model類的擴充套件資料庫套件
- word怎麼自動生成目錄?Word自動生成目錄的方法教程
- vue中使用前端庫 :nanoid自動生成idVue前端NaN
- lombok的使用Lombok
- 動態庫的生成和使用(二)
- word文件生成影片,自動配音、背景音樂、自動字幕,另類創作工具
- 談軟體自動化測試工具的評測方法
- paluch.biz - Lombok的資料類是有害的!為什麼我不再使用Lombok?Lombok
- CodeSmith生成實體類MIT
- 動態生成簽名工具類
- lombok~避免Boolean屬性使用預設的方法LombokBoolean
- 使用API自動生成工具優化前端工作流API優化前端
- MoneyPrinterPlus:AI自動短影片生成工具,詳細使用教程AI
- 分享一下我的三個程式碼自動生成工具類--助你解放雙手
- 分享一下我的三個程式碼自動生成工具類–助你解放雙手
- 基於Dapper的開源Lambda擴充套件,且支援分庫分表自動生成實體APP套件
- MyEclipse2014使用Hibernate逆向工程生成實體類Eclipse
- 自動生成hashcode和equals方法
- domutils 工具庫的使用方法介紹
- 一個基於GPT模型實現的Git Commit資訊自動生成工具GPT模型GitMIT