Lombok — Java代码自动生成 开发利器
http://www.jiucool.com/lombok-java-eclipse/
最近回家閑暇之余,發(fā)現(xiàn)了老外一款不錯(cuò)的工具,決定引入項(xiàng)目當(dāng)中,這款工具就是Lombok.
一、Lombok是什么
Lombok是一款小巧的代碼生成工具。官方網(wǎng)址:http://projectlombok.org/
LomBok主要特性有:自動(dòng)生成默認(rèn)的getter/setter方法、自動(dòng)化的資源管理(通過@Cleanup注解)及注解驅(qū)動(dòng)的異常處理等。目前在國外廣泛應(yīng)用。
LomBok它和jquery一樣,目標(biāo)是讓程序員寫更少的代碼,以及改進(jìn)一些原始語法中不盡人意的地方。Lombok能做到這一點(diǎn)。既不是用annotations process,也不是用反射。而是直接黑到了編譯過程中。所以對運(yùn)行效率沒有任何影響,我們可以通過反編譯class文件進(jìn)行驗(yàn)證。
二、為何項(xiàng)目中要引入Lombok
本人認(rèn)為主要為以下三點(diǎn):
1. 提高開發(fā)效率
2. 使代碼直觀、簡潔、明了、減少了大量冗余代碼(一般可以節(jié)省60%-70%以上的代碼)
3. 極大減少了后期維護(hù)成本
三、Lombok如何使用
目前我們主要采用Eclipse開發(fā),所以以Eclipse為例演示:
1. Lombok在Eclipse上的安裝
java -jar?lombok.jar
進(jìn)行Eclipse插件的安裝
2. Lombok的使用
Lombok的特色是根據(jù)annotation創(chuàng)建一些代碼,以減少重復(fù)代碼的數(shù)量,它提供了以下幾個(gè)annotation:
@Getter和@Setter:為屬性創(chuàng)建getter和setter
@EqualsAndHashCode:實(shí)現(xiàn)equals()方法和hashCode()方法
@ToString:實(shí)現(xiàn)toString()方法
@Data:上述3個(gè)annotation的和,會(huì)創(chuàng)建getter setter equals hashCode和toString
@Cleanup:關(guān)閉流
@Synchronized:對象同步
@SneakyThrows:拋出異常
@Log4j: log4j日志聲明
下面,看一些實(shí)例吧:
@Getter @Setter
原來的寫法:
Lombok中的寫法
在生成 getter/setter 方法時(shí),Lombok 遵從傳統(tǒng)的標(biāo)準(zhǔn)。所有這些方法名都以 get 或 set 開頭并且屬性名都是大寫的。當(dāng)然,如果屬性是一個(gè) Boolean,情況例外。在這種情況下,getter 以 is 開始,而非 get。這是 Java bean 的一種標(biāo)準(zhǔn)實(shí)踐;
hashcode 當(dāng)JavaBean 輸出數(shù)字;
toString 輸出Class 和每個(gè)屬性的打印列表;
修飾Getter方法的訪問權(quán)限?
@Getter(AccessLevel.PROTECTED) 修飾getter方法的訪問權(quán)限?
@Setter(AccessLevel.PROTECTED) 修飾setter方法的訪問權(quán)限?
@Getter(AccessLevel.PROTECTED) private int size;
@ToString
排除某一個(gè)特定字段重寫toString方法:
@ToString(exclude="color")?
public @Data class Lure {?
private String name;?
private int size;?
private String color;?
private String style;?
}
@EqualsAndHashCode
等等……使用起來非常方便.
與50位技術(shù)專家面對面20年技術(shù)見證,附贈(zèng)技術(shù)全景圖
總結(jié)
以上是生活随笔為你收集整理的Lombok — Java代码自动生成 开发利器的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: eclipse插件egit安装使用
- 下一篇: HBase应用笔记:通过Java Api