參考
http://developer.51cto.com/art/201004/194014.htm
下載后安裝:
java -jar lombok.jar
1
import lombok.Data
2
public @Data class xx
3

默認提供了getters 和 setters 以及equals 當且僅當javabean中每一個屬性相同時,輸出true;
在生成 getter/setter 方法時,Lombok 遵從傳統(tǒng)的標準。所有這些方法名都以 get
或 set
開頭并且屬性名都是大寫的。當然,如果屬性是一個 Boolean,情況例外。在這種情況下,getter 以 is
開始,而非 get
。這是 Java bean 的一種標準實踐;
hashcode 當JavaBean 輸出數(shù)字;
toString 輸出Class 和每個屬性的打印列表;
修飾Getter方法的訪問權限
@Getter(AccessLevel.PROTECTED) 修飾getter方法的訪問權限
@Setter(AccessLevel.PROTECTED) 修飾setter方法的訪問權限


@Getter(AccessLevel.PROTECTED) private int size;



排除某一個特定字段重寫toString方法:
1
@ToString(exclude="color")
2
public @Data class Lure
{
3
private String name;
4
private int size;
5
private String color;
6
private String style;
7
}
您是不是也一直非常痛恨編寫 try/catch/finally 塊呢?我是這樣的。幸運的是,有了 Lombok,您無需這么做了。這也是 Lombok 消除 Java 冗余的另一種方式。為了消除 try/catch/finally 塊的冗余,只需使用 @Cleanup
注釋。參見清單 6。
清單 6. 使用 @Cleanup
注釋
public static void main(String[] args) throws IOException {
@Cleanup InputStream in = new FileInputStream(args[0]);
@Cleanup OutputStream out = new FileOutputStream(args[1]);
//write file code goes here
}
|
上述代碼較我們通常在標準 Java 代碼內(nèi)看到的整潔了很多。請注意您還是需要拋出由被調(diào)用代碼捕獲的異常(在本例中,為 IOException
)。
清單 6 中的這個代碼塊不僅消除了 try/catch/finally 塊,而且還關閉了開放流。如果您處理的對象使用一個方法而不是 close()
來釋放資源,那么就需要用一個帶附加說明的注釋調(diào)用該方法。比如,@Cleanup("relinquish")
。
Lombok 還可以減少同步方法所需的代碼的冗余。很自然,這是用 @Synchronized
方法實現(xiàn)的。
清單 7. 使用 @Synchronized
注釋
@Synchronized
private int foo() {
//some magic done here
return 1;
}
|
在本例中,Lombok 會自動創(chuàng)建一個名為 $lock
的實例對象,并會針對該對象同步方法 foo()
。
如果用 @Synchronized
注釋的這個方法是靜態(tài)的,那么 Lombok 就會創(chuàng)建一個名為 $LOCK
的類對象,并會針對該對象同步這個方法。
您還可以指定一個對象用以通過一個附加參數(shù)進行顯式的鎖定。比如,@Synchronized("myObject")
會針對對象 myObject
同步這個方法。在這種情況下,必須顯式地定義它。