Data 註解引出的 lombok 小辣椒

2021-08-28 08:46:58 字數 1544 閱讀 6725

今天在看**的時候, 看到了這個註解, 之前都沒有見過, 所以就查了下, 發現還是個不錯的註解, 可以讓**更加簡潔.

這個註解來自於 lombok,lombok 能夠減少大量的模板**,減少了在使用@data 註解時, 需要匯入lombok.data,下面列舉下 lombok提供的註解:

val : 和 scala 中 val 同名, 可以在執行時確定型別;

@nonnull : 註解在引數上, 如果該類引數為 null , 就會報出異常,  throw new nullpointexception(引數名)

@cleanup : 注釋在引用變數前, 自動**資源 預設呼叫 close() 方法

@getter/@setter : 註解在類上, 為類提供讀寫屬性

@getter(lazy=true) :

@tostring : 註解在類上, 為類提供 tostring() 方法

@equalsandhashcode : 註解在類上, 為類提供 equals() 和 hashcode() 方法

@noargsconstructor, @requiredargsconstructor, @allargsconstructor : 註解在類上, 為類提供無參,有指定必須引數, 全參建構函式

@data : 註解在類上, 為類提供讀寫屬性, 此外還提供了 equals()、hashcode()、tostring() 方法

@value :

@builder : 註解在類上, 為類提供乙個內部的 builder

@sneakthrows :

@synchronized : 註解在方法上, 為方法提供同步鎖

@log :

@log4j : 註解在類上, 為類提供乙個屬性名為 log 的 log4j 的日誌物件

@slf4j : 註解在類上, 為類提供乙個屬性名為 log 的 log4j 的日誌物件

@cleanup("dispose") org.eclipse.swt.widgets.coolbar bar = new coolbar(parent, 0);

@cleanup inputstream in = new fileinputstream(args[0]);

@cleanup outputstream out = new fileoutputstream(args[1]);

上面一些註解是由包含關係的, 看需要什麼方法就增加什麼註解,@log4j 和 @slf4j 註解作用不小, 用在各層都可以,方便打 log。

也可以檢視官網 [ 官網 ] 

簡易例子:[ 只是用了@data註解 ]

public @data class student

雖然說,eclipse 的快捷鍵生成這些**會很快,但是知道總比不知道的好,萬一別人用了,你看不懂別人的**呢?那就不面子丟大了,還只是個實體類而已。

我覺得最重要的是,**行數少了很多,簡潔的**誰不喜歡呢?

還有一點, 使用這個 lombok 需要安裝 lombok 外掛程式。

Data 註解引出的 lombok

官網 註解型別 val 和 scala 中 val 同名,可以在執行時確定型別 nonnull 註解在引數上,如果該類引數為 null 就會報出異常,throw new nullpointexception 引數名 cleanup 注釋在引用變數前,自動 資源 預設呼叫 close 方法 gette...

Data 註解引出的 lombok 小辣椒

今天在看 的時候,看到了這個註解,之前都沒有見過,所以就查了下,發現還是個不錯的註解,可以讓 更加簡潔.這個註解來自於 lombok,lombok 能夠減少大量的模板 減少了在使用 data 註解時,需要匯入lombok.data,下面列舉下 lombok提供的註解 val 和 scala 中 va...

lombok 註解的使用

data 註解在類上 提供類所有屬性的 getting 和 setting 方法,此外還提供了equals canequal hashcode tostring 方法 setter 註解在屬性上 為屬性提供 setting 方法 getter 註解在屬性上 為屬性提供 getting 方法 log4...