中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何在Java中使用Lombok

發布時間:2021-03-31 17:54:11 來源:億速云 閱讀:328 作者:Leah 欄目:編程語言

如何在Java中使用Lombok?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

如何在IntelliJ IDEA中引入Lombok

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

pom.xml中引入lombok依賴(其中<scope>provided</scope>表示只在編譯、測試階段依賴該jar,運行階段不依賴(如運行容器中已包含了該jar,則置為provided避免jar沖突),默認<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方法)。默認是public類型的,如果需要的話可以修改方法的訪問級別: @Getter(AccessLevel.PROTECTED)

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

@NonNull

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

@NoArgsConstructor

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

@RequiredArgsConstructor

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

@RequiredArgsConstructor(staticName = “of”)會生成一個of()的靜態方法,并把構造方法設置為私有的

@AllArgsConstructor

生成一個全參數的構造方法

@ToString

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

@EqualsAndHashCode

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

// 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屬性來設置getLogger(String name)方法的參數 例如 @Log4j(topic = “com.xxx.service.xxx”),默認是類的全限定名,即 類名.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

@Log
private static final java.util.logging.Logger log = java.util.logging.Logger.getLogger(LogExample.class.getName());
@Log4j
private static final Logger log = org.apache.log4j.Logger.Logger.getLogger(UserService.class);
@Log4j2
private static final org.apache.logging.log4j.Logger log = org.apache.logging.log4j.LogManager.getLogger(LogExample.class);
@Slf4j
private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(LogExample.class);
@XSlf4j
private static final org.slf4j.ext.XLogger log = org.slf4j.ext.XLoggerFactory.getXLogger(LogExample.class);
@CommonsLog
private static final org.apache.commons.logging.Log log = org.apache.commons.logging.LogFactory.getLog(LogExample.class);
@JBossLog
private static final org.jboss.logging.Logger log = org.jboss.logging.Logger.getLogger(LogExample.class);

@SneakyThrows

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

@Synchronized

給方法加上同步鎖

@Cleanup

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

@Getter(lazy = true)

標注字段為懶加載字段,懶加載字段在創建對象時不會進行初始化,而是在第一次訪問的時候才會初始化,后面再次訪問也不會重復初始化

@Wither

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

@Builder

為你的類生成復雜的構建器API。

@Delegate

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

關于如何在Java中使用Lombok問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

炎陵县| 长治县| 阿坝县| 咸丰县| 陇南市| 塔城市| 嘉黎县| 监利县| 翼城县| 昭平县| 广元市| 太康县| 靖州| 巫溪县| 安溪县| 囊谦县| 新乡县| 巴里| 株洲县| 六枝特区| 甘洛县| 长海县| 保康县| 绥阳县| 西安市| 和静县| 白朗县| 仲巴县| 大关县| 嘉禾县| 牟定县| 湘潭市| 汾阳市| 涡阳县| 梁平县| 寿光市| 泰安市| 壶关县| 黄平县| 尚义县| 古丈县|