99偷拍视频精品区一区二,口述久久久久久久久久久久,国产精品夫妇激情啪发布,成人永久免费网站在线观看,国产精品高清免费在线,青青草在线观看视频观看,久久久久久国产一区,天天婷婷久久18禁,日韩动漫av在线播放直播

Java的Lombok使用方法是什么-創(chuàng)新互聯(lián)

這篇文章主要介紹“Java的Lombok使用方法是什么”,在日常操作中,相信很多人在Java的Lombok使用方法是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Java的Lombok使用方法是什么”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、微信平臺小程序開發(fā)、集團企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了尉氏免費建站歡迎大家使用!

前言

在項目開發(fā)過程中,經(jīng)常會涉及到一些調(diào)整很少但又必不可少的環(huán)節(jié),比如實體類的Getter/Setter方法,ToString方法等。這時可以使用Lombok來避免這種重復(fù)的操作,減少非核心代碼的臃腫,提高編碼效率。

如何在IntelliJ IDEA中引入Lombok

安裝Lombok 插件(否則在調(diào)用setter/getter方法時IDE會提示報錯): File -> Settings -> Plugins 搜索Lombok Plugin完成安裝。

pom.xml中引入lombok依賴(其中<scope>provided</scope>表示只在編譯、測試階段依賴該jar,運行階段不依賴(如運行容器中已包含了該jar,則置為provided避免jar沖突),默認(rèn)<scope>compile</scope>則表示在編譯、測試、運行階段都依賴):

<dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.16.20</version><scope>provided</scope></dependency>

Lombok注解用途

@Getter/@Setter

為字段生成Getter和Setter方法,可以注解到字段或者類上(注解在類上會為類中所有字段生成Getter和Setter方法)。默認(rèn)是public類型的,如果需要的話可以修改方法的訪問級別: @Getter(AccessLevel.PROTECTED)

Lombok中的注解一般都會包含一個無參構(gòu)造函數(shù)注解@NoArgsConstructor(用于生成無參構(gòu)造函數(shù)) ,所以還會額外生成一個無參構(gòu)造函數(shù)

@NonNull

調(diào)用字段的setter方法時,如果傳的參數(shù)為null,則會拋出空異常NullPointerException,生成setter方法時會檢查參數(shù)是否為空

@NoArgsConstructor

生成一個無參構(gòu)造方法。當(dāng)類中有final字段沒有被初始化時,編譯器會報錯,此時可用@NoArgsConstructor(force = true),然后就會為沒有初始化的final字段設(shè)置默認(rèn)值 0 / false / null, 這樣編譯器就不會報錯。對于具有約束的字段(例如@NonNull字段),不會生成檢查或分配,因此請注意,正確初始化這些字段之前,這些約束無效。

@RequiredArgsConstructor

生成構(gòu)造方法(可能帶參數(shù)也可能不帶參數(shù)),如果帶參數(shù),這參數(shù)只能是以final修飾的未經(jīng)初始化的字段,或者是以@NonNull注解的未經(jīng)初始化的字段。

@RequiredArgsConstructor(staticName = “of”)會生成一個of()的靜態(tài)方法,并把構(gòu)造方法設(shè)置為私有的

@AllArgsConstructor

生成一個全參數(shù)的構(gòu)造方法

@ToString

生成toString()方法,默認(rèn)情況下它會按順序(以逗號分隔)打印你的類名稱以及每個字段??梢赃@樣設(shè)置不包含哪些字段,可以指定一個也可以指定多個@ToString(exclude = “id”) / @ToString(exclude = {“id”,”name”}) 。如果繼承的有父類的話,可以設(shè)置callSuper 讓其調(diào)用父類的toString()方法,例如:@ToString(callSuper = true)

@EqualsAndHashCode

生成hashCode()和equals()方法,默認(rèn)情況下,它將使用所有非靜態(tài),非transient字段。但可以通過在可選的exclude參數(shù)中來排除更多字段。或者,通過在of參數(shù)中命名它們來準(zhǔn)確指定希望使用哪些字段。

// exclude 排除字段 @EqualsAndHashCode(exclude = {“password”, “salt”})// of 指定要包含的字段 @EqualsAndHashCode(of = {“id”, “phone”, “password”})

@Data

@Data 包含了 @ToString、@EqualsAndHashCode、@Getter / @Setter和@RequiredArgsConstructor的功能

@Value

@Value 將字段都變成不可變類型:使用final修飾, 同時還包含@ToString、@EqualsAndHashCode、

@AllArgsConstructor 、@Getter(注意只有Getter沒有Setter)

@Log

生成log對象,用于記錄日志,可以通過topic屬性來設(shè)置getLogger(String name)方法的參數(shù) 例如 @Log4j(topic = “com.xxx.service.xxx”),默認(rèn)是類的全限定名,即 類名.class,log支持以下幾種:

@Log java.util.logging.Logger  @Log4j org.apache.log4j.Logger  @Log4j2 org.apache.logging.log4j.Logger  @Slf4j org.slf4j.Logger  @XSlf4j org.slf4j.ext.XLogger  @CommonsLog org.apache.commons.logging.Log  @JBossLog org.jboss.logging.Logger

@Logprivate static final java.util.logging.Logger log = java.util.logging.Logger.getLogger(LogExample.class.getName());@Log4jprivate static final Logger log = org.apache.log4j.Logger.Logger.getLogger(UserService.class);@Log4j2private static final org.apache.logging.log4j.Logger log = org.apache.logging.log4j.LogManager.getLogger(LogExample.class);@Slf4jprivate static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(LogExample.class);@XSlf4jprivate static final org.slf4j.ext.XLogger log = org.slf4j.ext.XLoggerFactory.getXLogger(LogExample.class);@CommonsLogprivate static final org.apache.commons.logging.Log log = org.apache.commons.logging.LogFactory.getLog(LogExample.class);@JBossLogprivate static final org.jboss.logging.Logger log = org.jboss.logging.Logger.getLogger(LogExample.class);

@SneakyThrows

使用try catch 修飾方法,來捕獲異常, 默認(rèn)捕獲的是Throwable異常,也可以設(shè)置要捕獲的異常:@SneakyThrows(InterruptedException.class)

@Synchronized

給方法加上同步鎖

@Cleanup

主要用來修飾 IO 流相關(guān)類, 會在 finally 代碼塊中對該資源進行 close();

@Getter(lazy = true)

標(biāo)注字段為懶加載字段,懶加載字段在創(chuàng)建對象時不會進行初始化,而是在第一次訪問的時候才會初始化,后面再次訪問也不會重復(fù)初始化

@Wither

提供了給final字段賦值的一種方法

@Builder

為你的類生成復(fù)雜的構(gòu)建器API。

@Delegate

為List類型的字段生成一大堆常用的方法,其實這些方法都是List中的方法 。注意:一個類中只能使用一個@Delegate注解,因為使用多個會生成多個size()方法,從而會編譯報錯。

到此,關(guān)于“Java的Lombok使用方法是什么”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

分享文章:Java的Lombok使用方法是什么-創(chuàng)新互聯(lián)
文章轉(zhuǎn)載:http://www.yijiale78.com/article26/dehejg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作云服務(wù)器、Google、關(guān)鍵詞優(yōu)化、手機網(wǎng)站建設(shè)、標(biāo)簽優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運營