吃點糖不好嘛 甜甜的Lombok

fairjm發表於2017-01-20

本文來自fairjm@ituring 轉截請註明出處


語法糖雖然沒有為語言帶來翻天覆地的變化,但是也減少了開發者的痛苦感.
對於java這種更新進度緩慢,語法比較囉嗦的語言,多一點語法糖就可以減少大量的程式碼.
lombok正是為此而生的專案.
專案地址:https://projectlombok.org/

因為官方文件簡單並且詳細,可以自行參閱.
這裡就聊聊常用的一些.

冗長的型別宣告

想想scala裡的val var,型別宣告可以根據賦值推匯出來,然而在java裡只能老老實實寫.
想一想程式碼裡的 StringBuilder sb = new StringBuilder(); 為什麼要打兩遍,雖然IDE有自動補全,但整個程式碼看上去還是會顯得很累贅.
lombok提供了valvar(var在experimental中),像用scala一樣用吧.
幸福感up

繁瑣的構造器模式程式碼

你還記得怎麼寫構造器模式嘛...
想一想 一個靜態內部類Builder 一樣的field再寫一遍.
手寫構造器模式等於把之前的程式碼翻了一倍,而且構造器模式比較常用,寫得自己都噁心了.
用lombok只需要@Builder,結束了.

POJO

之前都是寫好field,右鍵生成setter,getter,右鍵equals hashcode,toString.
然後多加一個field,再操作一遍,忘記操作了就多了一個bug.
@Data搞定一切.
如果公司有特殊的命名規定,比如所有的field都要以m開頭(Android tutorial).那可以配合@Accessor的prefix屬性即可.

就舉三個例子,其他自行官方文件即可.

糖雖好,但也別貪吃,在使用之前,你需要理解去糖化後的程式碼是怎樣的,不要濫用.

希望java的官方糖更多一點吧,反觀C#那麼多方便的語法大大減少了開發的痛感.

相關文章