下載后安裝:java -jar lombok.jar

2

3


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






排除某一個特定字段重寫toString方法:

2

3

4

5

6

7

您是不是也一直非常痛恨編寫 try/catch/finally 塊呢?我是這樣的。幸運的是,有了 Lombok,您無需這么做了。這也是 Lombok 消除 Java 冗余的另一種方式。為了消除 try/catch/finally 塊的冗余,只需使用 @Cleanup
注釋。參見清單 6。
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 代碼內看到的整潔了很多。請注意您還是需要拋出由被調用代碼捕獲的異常(在本例中,為 IOException
)。
清單 6 中的這個代碼塊不僅消除了 try/catch/finally 塊,而且還關閉了開放流。如果您處理的對象使用一個方法而不是 close()
來釋放資源,那么就需要用一個帶附加說明的注釋調用該方法。比如,@Cleanup("relinquish")
。
Lombok 還可以減少同步方法所需的代碼的冗余。很自然,這是用 @Synchronized
方法實現的。
@Synchronized private int foo() { //some magic done here return 1; } |
在本例中,Lombok 會自動創建一個名為 $lock
的實例對象,并會針對該對象同步方法 foo()
。
如果用 @Synchronized
注釋的這個方法是靜態的,那么 Lombok 就會創建一個名為 $LOCK
的類對象,并會針對該對象同步這個方法。
您還可以指定一個對象用以通過一個附加參數進行顯式的鎖定。比如,@Synchronized("myObject")
會針對對象 myObject
同步這個方法。在這種情況下,必須顯式地定義它。