摘要:可以去下載包目前最新版本為。對于某個具體的類來說,出于安全或者性能或者其它方面的考慮,可能并不希望全部成員都出現(xiàn)在方法的返回值里。根據(jù)中的建議,方法和方法要同時實(shí)現(xiàn),并且保證一致性。
前言
Lombok主頁
Lombok下載Lombok引入項(xiàng)目之后,便可以使用 本文記錄了在項(xiàng)目中應(yīng)用Lombok時的使用案例,希望對朋友你有一些幫助。
可以去 下載jar包
maven:
org.projectlombok lombok 1.16.10
gradle:
// https://mvnrepository.com/artifact/org.projectlombok/lombok compile group: "org.projectlombok", name: "lombok", version: "1.16.10"
目前最新版本為1.16.10。
初學(xué)Lombok的使用時,建議配合Java的編譯工具,便于理解Lombok在背后做的事情。
Lombok 安裝使用 lombok 是需要安裝的,如果不安裝,IDE 則無法解析 lombok 注解。先在官網(wǎng)下載最新版本的 JAR 包。
第一次使用的時候我下載的是最新版本的,也就是我現(xiàn)在用的1.16.10 目前版本更新很快。
1.雙擊下載下來的 JAR 包安裝 lombok
我選擇這種方式安裝的時候提示沒有發(fā)現(xiàn)任何 IDE,所以我沒安裝成功,我是手動安裝的。如果你想以這種方式安裝,請參考官網(wǎng)的視頻。
2.eclipse 手動安裝 lombok
(1). 將 lombok.jar 復(fù)制到eclipse.ini 所在的文件夾目錄下
(2). 打開 eclipse.ini,在最后面插入以下兩行并保存:
-Xbootclasspath/a:lombok.jar -javaagent:lombok.jar
(3).重啟 eclipse
Lombok好處在哪里?沒使用Lombok之前,定義JavaBean時,需要為每個成員定義getter/setter方法,無論手寫或者自動生成,過程都不麻煩,但當(dāng)Bean里的成員蠻多時,看代碼的時候就比較心煩,無關(guān)的部分越來越多。隨著項(xiàng)目的成長,代碼的行數(shù)也奇跡般的增長,以至于項(xiàng)目經(jīng)理在評估工作量時都要考慮適時的調(diào)整比率,麻煩呀。
@Data注解通過在在class關(guān)鍵字前增加@Data,Lombok除了自動生成所有非final成員的getter/setter方法外,還有額外的福利,lombok同時生成了toString、equals、hashCode方法,并且完全符合規(guī)范,這樣縮減了代碼的規(guī)模,也少了手寫toString/equals/hashCode方法的煩惱。
@Data class Person { private String name; private int age; private String job; private Object info; }@ToString注解
在調(diào)試代碼時經(jīng)常遇到一個問題,查看某個變量的值時,發(fā)現(xiàn)變量窗口展示的是一個奇怪的值(或者說對象在JVM內(nèi)部表示的地址,這其實(shí)是toString方法的默認(rèn)實(shí)現(xiàn));想要查看對象內(nèi)部各成員的值就需要逐層展開,這樣才能看到內(nèi)部的信息。類似的調(diào)試過程煩不勝煩,但對于定義了合適的toString方法的類的對象,調(diào)試時查看其內(nèi)部成員的值則會簡單許多,調(diào)試器會自動調(diào)用對象的toString方法,并將得到的字符串展示在變量值窗口,這無疑為調(diào)試帶來了莫大便利。但手寫toString方法其實(shí)非常麻煩,有過相關(guān)經(jīng)歷的朋友可能會深有體會。對于某個具體的類來說,出于安全或者性能或者其它方面的考慮,可能并不希望全部成員都出現(xiàn)在toString方法的返回值里。
@ToString(exclude = { "age", "job" }, includeFieldNames = false, doNotUseGetters = true) class Staff { private String name; private int age; private String job; private Object info; } @ToString(callSuper = false) class Student extends Staff { private String schoolName; private int classNo; }@EqualsAndHashCode
在項(xiàng)目開發(fā)過程中,雖然場景比較少,但仍然不可避免存在需要自定義equals或者h(yuǎn)ashCode方法的時候,當(dāng)然這也是頭疼的時候。根據(jù)《Effective Java》中的建議,equals方法和hashCode方法要同時實(shí)現(xiàn),并且保證一致性。Lombok提供的@EqualsAndHashCode完美的解決了手寫equals和hashCode方法時遇到的全部問題,不需要刻意關(guān)注底層的實(shí)現(xiàn)細(xì)節(jié)
@EqualsAndHashCode(exclude = { "age", "job" }, doNotUseGetters = true) class Staff { private String name; private int age; private String job; private Object info; } @EqualsAndHashCode(callSuper = false) class Student extends Staff { private String schoolName; private int classNo; }@Getter和@Setter
通過這兩個注解,可以靈活控制是否為字段提供getter/settere方法,以及getter/setter方法的訪問權(quán)限。由于使用非常簡單,以后就不用看到一大堆的get set 啰。
class Person { @Getter @Setter private String name; @Getter private String schoolName; @Setter private int classNo; @Getter(AccessLevel.MODULE) private int age; @Getter(AccessLevel.NONE) private String job; @Getter(AccessLevel.PRIVATE) private Object info; }
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/65070.html
摘要:提高編碼效率使代碼更簡潔消除冗長代碼避免修改字段名字時忘記修改方法名提高下逼格以上就是的優(yōu)點(diǎn),當(dāng)然,的優(yōu)點(diǎn)遠(yuǎn)遠(yuǎn)不止以上幾點(diǎn),使用,你可以更加優(yōu)雅高效的編輯代碼。實(shí)戰(zhàn)完成了上述準(zhǔn)備之后,就可以愉快的使用進(jìn)行編碼了。接下來是使用簡化后的代碼。 Lombok介紹 近來偶遇一款擼碼神器,介紹給大家~相信許多小伙伴都深有體會,POJO類中的千篇一律的getter/setter,construct...
摘要:概述通過提供簡單的語法注解形式來幫助簡化消除一些必須有但顯得很臃腫的代碼。作用在方法參數(shù)上的注解,用于自動生成空值參數(shù)檢查自動幫我們調(diào)用方法。 showImg(https://segmentfault.com/img/remote/1460000014247343); 概述 Lombok 通過提供簡單的語法注解形式來幫助簡化消除一些必須有但顯得很臃腫的 java 代碼。典型的是對于 ...
摘要:經(jīng)過分析和思考,我決定不采用遞歸的方式來編寫樹形數(shù)據(jù)的處理,最終選用來維護(hù)樹節(jié)點(diǎn)之間的關(guān)系。以權(quán)限樹為例,做一個樹形數(shù)據(jù)工具類的設(shè)計(jì)。 1.簡介 ? 在一些管理系統(tǒng)中一般都會用到,會用到一些樹形數(shù)據(jù),例如部門組織以及權(quán)限等數(shù)據(jù),都得生成樹形數(shù)據(jù),需要寫一些樹形數(shù)據(jù)生成工具,一般使用遞歸的方式,性能低下還可能會導(dǎo)致爆棧。經(jīng)過分析和思考,我決定不采用遞歸的方式來編寫樹形數(shù)據(jù)的處理,最...
摘要:使用可以大大減少代碼行數(shù),提高開發(fā)效率。提供了日志工具無參構(gòu)造器提供方法提供方法方法有參構(gòu)造器,參數(shù)按屬性定義順序傳入提供了空指針檢測,會拋出異常 lombok 是一個第三方工具,提供了一些注解功能,可以幫助我們消除冗余、臃腫的 Java 代碼,比如 POJO 的 getter/setter 方法、構(gòu)造方法、hashcode 方法等。lombok 在編譯時根據(jù)注解生成具體的代碼,在虛擬...
閱讀 720·2023-04-25 17:54
閱讀 2976·2021-11-18 10:02
閱讀 1139·2021-09-28 09:35
閱讀 655·2021-09-22 15:18
閱讀 2857·2021-09-03 10:49
閱讀 3057·2021-08-10 09:42
閱讀 2580·2019-08-29 16:24
閱讀 1262·2019-08-29 15:08