IntelliJ IDEA lombok插件的安裝和使用

每日一新

1.介紹

lombok是開源的代碼生成庫,是一款非常實(shí)用的小工具,我們在編輯實(shí)體類時可以通過lombok注解減少getter、setter等方法的編寫,在更改實(shí)體類時只需要修改屬性即可,減少了很多重復(fù)代碼的編寫工作。本文將介紹IntelliJ IDEA中l(wèi)ombok插件的安裝和配置以及簡單的使用方法。

2.安裝

在Idea的插件商店中搜索“l(fā)ombok”安裝即可,安裝完畢后需重啟Idea。


安裝lombok插件

3.配置

然后在Settings設(shè)置頁面,我們點(diǎn)擊Build,Execution,Deployment-->選擇Compiler-->選中Annotation Processors,然后在右側(cè)勾選Enable annotation processing即可。

配置

4.使用

使用前需要說明的是安裝的插件只是一個調(diào)用,就像使用maven插件一樣,本機(jī)需要安裝maven才行。我們在使用lombok前也需要添加lombok的依賴。

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.8</version>
        </dependency>

接下來編輯一個實(shí)體類TbMsg,添加三個屬性,最后在類上添加@Data屬性,這個注解可以幫我們在.class文件中生成類中所有屬性的get/set方法、equals、canEqual、hashCode、toString方法等。

package com.zhuliming.entity;

import lombok.Data;

/**
 * 實(shí)體類
 */
@Data
public class TbMsg {

    private int id;
    private String name;
    private String msg;

}

創(chuàng)建一個對象,通過對象我們可以看到已經(jīng)生成的方法

生成的方法

也可以通過在菜單欄點(diǎn)擊View-->Tool Windows-->Structure,便可以看到類中所有的方法了,這些都是lombok幫我們自動生成的。

生成的方法

5.常用的lombok注解

常用的 lombok 注解:

@Data :注解在類上;包含了@ToString,@EqualsAndHashCode,@Getter / @Setter和@RequiredArgsConstructor的功能,提供類所有屬性的 getter 和 setter 方法,此外還提供了equals、canEqual、hashCode、toString 方法

@Setter:注解在屬性上;為屬性提供 setter 方法

@Getter:注解在屬性上;為屬性提供 getter 方法

@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ù)中來排除更多字段?;蛘?,通過在parameter參數(shù)中命名它們來準(zhǔn)確指定希望使用哪些字段。

@NonNull: 注解在屬性上;標(biāo)識屬性是不能為空,為空則拋出異常。

@Slf4j :注解在類上;根據(jù)用戶實(shí)際使用的日志框架生成log日志對象。

@Log4j :注解在類上;為類提供一個 屬性名為log 的 log4j 日志對象

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

@AllArgsConstructor:注解在類上;為類提供一個全參的構(gòu)造方法

默認(rèn)生成的方法是public的,如果要修改方法修飾符可以設(shè)置AccessLevel的值,例如:@Getter(access = AccessLevel.PROTECTED)

@RequiredArgsConstructor:注解在類上;會生成構(gòu)造方法(可能帶參數(shù)也可能不帶參數(shù)),如果帶參數(shù),這參數(shù)只能是以final修飾的未經(jīng)初始化的字段,或者是以@NonNull注解的未經(jīng)初始化的字段@RequiredArgsConstructor(staticName = "of")會生成一個of()的靜態(tài)方法,并把構(gòu)造方法設(shè)置為私有的。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容