Lombok用法及標籤釋義

2022-09-15 02:12:09 字數 1883 閱讀 5678

首先需要新增如下pom檔案標籤:

org.projectlombokgroupid>

lombokartifactid>

1.16.8version>

dependency>

具體釋義:

val:用在區域性變數前面,相當於將變數宣告為final 例如:val lists = new arraylist();

@nonnull:給方法引數增加這個註解會自動在方法內對該引數進行是否為空的校驗,如果為空,則丟擲npe(nullpointerexception);

@cleanup:自動管理資源,用在區域性變數之前,在當前變數範圍內即將執行完畢退出之前會自動清理資源,自動生成try-finally這樣的**來關閉流。雖然自jdk7以來,原生引入了try--with--resource結構,但還是不如@cleanup來的簡潔。

@getter/@setter:用在屬性上,再也不用自己手寫setter和getter方法了,還可以指定訪問範圍;

@tostring:用在類上,可以自動覆寫tostring方法,當然還可以加其他引數,例如@tostring(exclude=」id」)排除id屬性,或者@tostring(callsuper=true, includefieldnames=true)呼叫父類的tostring方法,包含所有屬性;

@equalsandhashcode:用在類上,自動生成equals方法和hashcode方法;

@noargsconstructor, @requiredargsconstructor and @allargsconstructor:用在類上,自動生成無參構造和使用所有引數的建構函式以及把所有@nonnull屬性作為引數的建構函式,如果指定staticname = 「of」引數,同時還會生成乙個返回類物件的靜態工廠方法,比使用建構函式方便很多;

@data:註解在類上,相當於同時使用了@tostring@equalsandhashcode@getter@setter@requiredargsconstrutor這些註解,對於pojo類十分有用;

@value:用在類上,是@data的不可變形式,相當於為屬性新增final宣告,只提供getter方法,而不提供setter方法;

@builder:用在類、構造器、方法上,為你提供複雜的builder apis,讓你可以像如下方式一樣呼叫person.builder().name("adam s**age").city("san francisco").job("mythbusters").job("unchained reaction").build();更多說明參考builder;

@sneakythrows:自動拋受檢異常,而無需顯式在方法上使用throws語句;

@synchronized:用在方法上,將方法宣告為同步的,並自動加鎖,而鎖物件是乙個私有的屬性$lock$lock,而j**a中的synchronized關鍵字鎖物件是this,鎖在this或者自己的類物件上存在***,就是你不能阻止非受控**去鎖this或者類物件,這可能會導致競爭條件或者其它執行緒錯誤;

@getter(lazy=true):可以替代經典的double check lock樣板**;

@log:根據不同的註解生成不同型別的log物件,但是例項名稱都是log,有六種可選實現類;

lombok標籤 Lombok介紹和使用

引入使用 官網有簡單的安裝和使用教程。org.projectlombok lombok 1.16.18 provided ieda安裝介紹 lombok介紹和優點 介紹 通過簡單註解來實現精簡 來達到消除冗長 的目的。優點 提高編碼效率 使 更簡潔 消除冗長 避免修改欄位名時忘記修改方法名 提高逼格...

linux sigaction 函式 用法釋義

使用 sigaction 函式 signal 函式的使用方法簡單,但並不屬於 posix 標準,在各類 unix 平台上的實現不盡相同,因此其用途受 到了一定的限制。而 posix 標準定義的訊號處理介面是 sigaction 函式,其介面標頭檔案及原型如下 include int sigactio...

小辣椒Lombok用法

工程中不可避免會在實體類中寫大量的set或者get方法,如果工程變化,生成的一些方法會跟著改變,這就是要改變源 違背了開閉原則,有什麼方法可以避免功能變化而不用更改生成的諸如set放法人呢?答案就是lombok小辣椒 引入依賴項 org.projectlombok groupid lombok ar...