Lombok — Java代碼自動生成 開發利器

備注:全文轉自:http://www.jiucool.org/lombok-java-eclipse/
最近回家閑暇之余,發現了老外一款不錯的工具,決定引入項目當中,這款工具就是[Lombok
.

一、Lombok是什么

Lombok是一款小巧的代碼生成工具。官方網址:[http://projectlombok.org/

LomBok主要特性有:自動生成默認的getter/setter方法、自動化的資源管理(通過@Cleanup注解)及注解驅動的異常處理等。目前在國外廣泛應用。

LomBok它和jquery一樣,目標是讓程序員寫更少的代碼,以及改進一些原始語法中不盡人意的地方。Lombok能做到這一點。既不是用annotations
process,也不是用反射。而是直接黑到了編譯過程中。所以對運行效率沒有任何影響,我們可以通過反編譯class文件進行驗證。

二、為何項目中要引入Lombok

本人認為主要為以下三點:

  1. 提高開發效率

  2. 使代碼直觀、簡潔、明了、減少了大量冗余代碼(一般可以節省60%-70%以上的代碼)

  3. 極大減少了后期維護成本

三、Lombok如何使用

目前我們主要采用Eclipse開發,所以以Eclipse為例演示:

1. Lombok在Eclipse上的安裝

java -jar lombok.jar

進行Eclipse插件的安裝

1.png

2. Lombok的使用

Lombok的特色是根據annotation創建一些代碼,以減少重復代碼的數量,它提供了以下幾個annotation:

@Getter和@Setter:為屬性創建getter和setter

@EqualsAndHashCode:實現equals()方法和hashCode()方法

@ToString:實現toString()方法

@Data:上述3個annotation的和,會創建getter setter equals hashCode和toString

@Cleanup:關閉流

@Synchronized:對象同步

@SneakyThrows:拋出異常

@Log4j: log4j日志聲明

下面,看一些實例吧:

@Getter @Setter

原來的寫法:

2.png

Lombok中的寫法

3.png

在生成 getter/setter 方法時,Lombok 遵從傳統的標準。所有這些方法名都以 get 或 set
開頭并且屬性名都是大寫的。當然,如果屬性是一個 Boolean,情況例外。在這種情況下,getter 以 is 開始,而非 get。這是 Java bean
的一種標準實踐;

hashcode 當JavaBean 輸出數字;

toString 輸出Class 和每個屬性的打印列表;

修飾Getter方法的訪問權限@Getter(AccessLevel.PROTECTED) 修飾getter方法的訪問權限
@Setter(AccessLevel.PROTECTED) 修飾setter方法的訪問權限
@Getter(AccessLevel.PROTECTED) private int size;

@ToString

4.png
5.png

排除某一個特定字段重寫toString方法:

@ToString(exclude="color")public @Data class Lure {private String
name;private int size;private String color;private String style;
}

@EqualsAndHashCode

6.png

等等……使用起來非常方便.

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,565評論 6 539
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,115評論 3 423
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,577評論 0 382
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,514評論 1 316
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,234評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,621評論 1 326
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,641評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,822評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,380評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,128評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,319評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,879評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,548評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,970評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,229評論 1 291
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,048評論 3 397
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,285評論 2 376

推薦閱讀更多精彩內容

  • Lombok簡介 Lombok是一個可以通過簡單的注解形式來幫助我們簡化消除一些必須有但顯得很臃腫的Java代碼的...
    緩慢移動的蝸牛閱讀 145,238評論 19 124
  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,814評論 18 139
  • 對象的創建與銷毀 Item 1: 使用static工廠方法,而不是構造函數創建對象:僅僅是創建對象的方法,并非Fa...
    孫小磊閱讀 2,015評論 0 3
  • 4月 日,通過參加黨委中心組學習,學完了所有規定的篇目。整個學習過程中,我認真學好每一篇文章,做好學習筆記。通過學...
    一米陽光弎寸暖閱讀 1,586評論 0 0
  • 一、水庫人員安排 今天園山街道水庫出動管護人員10人次,安保12人次,巡查車輛:摩托車七輛、電動車四輛。重...
    小白_1d34閱讀 187評論 0 0