成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

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

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

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

前言

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

如何在IntelliJ IDEA中引入Lombok

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

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

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

Lombok注解用途

@Getter/@Setter

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

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

@NonNull

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

@NoArgsConstructor

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

@RequiredArgsConstructor

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

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

@AllArgsConstructor

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

@ToString

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

@EqualsAndHashCode

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

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

@Data

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

@Value

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

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

@Log

生成log對(duì)象,用于記錄日志,可以通過(guò)topic屬性來(lái)設(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 修飾方法,來(lái)捕獲異常, 默認(rèn)捕獲的是Throwable異常,也可以設(shè)置要捕獲的異常:@SneakyThrows(InterruptedException.class)

@Synchronized

給方法加上同步鎖

@Cleanup

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

@Getter(lazy = true)

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

@Wither

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

@Builder

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

@Delegate

為L(zhǎng)ist類型的字段生成一大堆常用的方法,其實(shí)這些方法都是List中的方法 。注意:一個(gè)類中只能使用一個(gè)@Delegate注解,因?yàn)槭褂枚鄠€(gè)會(huì)生成多個(gè)size()方法,從而會(huì)編譯報(bào)錯(cuò)。

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

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

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

廣告

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

網(wǎng)站托管運(yùn)營(yíng)
报价| 大城县| 平凉市| 佛坪县| 进贤县| 威信县| 恩施市| 陆川县| 土默特左旗| 日照市| 家居| 葵青区| 平邑县| 疏附县| 龙川县| 祁连县| 潞西市| 林西县| 镇远县| 西乌| 化德县| 宜丰县| 宜阳县| 平远县| 揭东县| 黑水县| 双流县| 阳东县| 大余县| 如皋市| 大城县| 尼玛县| 普宁市| 建平县| 阿拉善盟| 河北省| 云龙县| 四川省| 漠河县| 甘孜县| 张家港市|