備注:全文轉自:http://www.jiucool.org/lombok-java-eclipse/
最近回家閑暇之余,發現了老外一款不錯的工具,決定引入項目當中,這款工具就是[Lombok
.
一、Lombok是什么
Lombok是一款小巧的代碼生成工具。官方網址:[http://projectlombok.org/
LomBok主要特性有:自動生成默認的getter/setter方法、自動化的資源管理(通過@Cleanup注解)及注解驅動的異常處理等。目前在國外廣泛應用。
LomBok它和jquery一樣,目標是讓程序員寫更少的代碼,以及改進一些原始語法中不盡人意的地方。Lombok能做到這一點。既不是用annotations
process,也不是用反射。而是直接黑到了編譯過程中。所以對運行效率沒有任何影響,我們可以通過反編譯class文件進行驗證。
二、為何項目中要引入Lombok
本人認為主要為以下三點:
提高開發效率
使代碼直觀、簡潔、明了、減少了大量冗余代碼(一般可以節省60%-70%以上的代碼)
極大減少了后期維護成本
三、Lombok如何使用
目前我們主要采用Eclipse開發,所以以Eclipse為例演示:
1. Lombok在Eclipse上的安裝
java -jar lombok.jar
進行Eclipse插件的安裝
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
原來的寫法:
Lombok中的寫法
在生成 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
排除某一個特定字段重寫toString方法:
@ToString(exclude="color")public @Data class Lure {private String
name;private int size;private String color;private String style;
}
@EqualsAndHashCode
等等……使用起來非常方便.