備注:全文轉(zhuǎn)自:http://www.jiucool.org/lombok-java-eclipse/
最近回家閑暇之余,發(fā)現(xiàn)了老外一款不錯的工具,決定引入項目當(dāng)中,這款工具就是[Lombok
.
一蜕煌、Lombok是什么
Lombok是一款小巧的代碼生成工具循头。官方網(wǎng)址:[http://projectlombok.org/
LomBok主要特性有:自動生成默認的getter/setter方法缝驳、自動化的資源管理(通過@Cleanup注解)及注解驅(qū)動的異常處理等。目前在國外廣泛應(yīng)用贴浙。
LomBok它和jquery一樣,目標(biāo)是讓程序員寫更少的代碼,以及改進一些原始語法中不盡人意的地方。Lombok能做到這一點。既不是用annotations
process,也不是用反射九孩。而是直接黑到了編譯過程中名段。所以對運行效率沒有任何影響阱扬,我們可以通過反編譯class文件進行驗證。
二伸辟、為何項目中要引入Lombok
本人認為主要為以下三點:
提高開發(fā)效率
使代碼直觀麻惶、簡潔、明了自娩、減少了大量冗余代碼(一般可以節(jié)省60%-70%以上的代碼)
極大減少了后期維護成本
三用踩、Lombok如何使用
目前我們主要采用Eclipse開發(fā),所以以Eclipse為例演示:
1. Lombok在Eclipse上的安裝
java -jar lombok.jar
進行Eclipse插件的安裝
2. Lombok的使用
Lombok的特色是根據(jù)annotation創(chuàng)建一些代碼忙迁,以減少重復(fù)代碼的數(shù)量脐彩,它提供了以下幾個annotation:
@Getter和@Setter:為屬性創(chuàng)建getter和setter
@EqualsAndHashCode:實現(xiàn)equals()方法和hashCode()方法
@ToString:實現(xiàn)toString()方法
@Data:上述3個annotation的和,會創(chuàng)建getter setter equals hashCode和toString
@Cleanup:關(guān)閉流
@Synchronized:對象同步
@SneakyThrows:拋出異常
@Log4j: log4j日志聲明
下面姊扔,看一些實例吧:
@Getter @Setter
原來的寫法:
Lombok中的寫法
在生成 getter/setter 方法時惠奸,Lombok 遵從傳統(tǒng)的標(biāo)準。所有這些方法名都以 get 或 set
開頭并且屬性名都是大寫的恰梢。當(dāng)然佛南,如果屬性是一個 Boolean,情況例外嵌言。在這種情況下嗅回,getter 以 is 開始,而非 get摧茴。這是 Java bean
的一種標(biāo)準實踐绵载;
hashcode 當(dāng)JavaBean 輸出數(shù)字;
toString 輸出Class 和每個屬性的打印列表苛白;
修飾Getter方法的訪問權(quán)限@Getter(AccessLevel.PROTECTED) 修飾getter方法的訪問權(quán)限
@Setter(AccessLevel.PROTECTED) 修飾setter方法的訪問權(quán)限
@Getter(AccessLevel.PROTECTED) private int size;
@ToString
排除某一個特定字段重寫toString方法:
@ToString(exclude="color")public @Data class Lure {private String
name;private int size;private String color;private String style;
}
@EqualsAndHashCode
等等……使用起來非常方便.