最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java工具包之Lombok使用

 更新時(shí)間:2024年09月05日 10:30:16   作者:_周游  
這篇文章主要介紹了Java工具包之Lombok使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

在Spring項(xiàng)目中創(chuàng)建java對(duì)象,如果使用手動(dòng)生成getter、setter、toString等方法提供調(diào)用接口,會(huì)導(dǎo)致代碼修改成本與復(fù)雜度大大增加;

lombok是一個(gè)Java工具庫,通過添加注解的方式簡(jiǎn)化了Java的開發(fā);

接下來簡(jiǎn)單介紹lombok的使用方法;

使用lombok有兩種方法:

(1)maven倉庫手動(dòng)導(dǎo)入依賴+注解;

(2)EditStarters插件+注解;

1. maven倉庫手動(dòng)導(dǎo)入依賴+注解

1.1 maven倉庫引入依賴

鏈接如下:

https://mvnrepository.com/artifact/org.projectlombok/lombok/1.18.24

copy至pom.xml文件中即可:

<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.24</version>
    <scope>provided</scope>
</dependency>

注:勿忘在maven面板中進(jìn)行刷新:

1.2 在類上使用@Data注解

在java類上增加@Data注解:

package com.example.demo.controller;

import lombok.Data;

import java.util.Date;

@Data
public class MessageInfo {
    private String from;
    private String to;
    private String message;
    private Date CreateTime;
}

此時(shí)在對(duì)應(yīng)的Controller中增加相應(yīng)的獲取屬性的get方法,即使沒有顯式編寫相關(guān)代碼,但可見可以成功調(diào)用: (.getFrom()方法未標(biāo)紅報(bào)錯(cuò))

package com.example.demo.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RequestMapping("/message")
@RestController
public class MessageController {
    @RequestMapping("/publish")
    public Boolean publishMessage(MessageInfo messageInfo){
        String from = messageInfo.getFrom();
        return false;
    }
    @RequestMapping("/getMessageList")
    public List<MessageInfo> getMessageList(){
        return null;
    }
}

(請(qǐng)忽略該controller的業(yè)務(wù)邏輯,此處僅用于輔助展示lombok作用)

@Data注解就是lombok提供的通過注解自動(dòng)生成屬性的get與set方法,可避免修改接口屬性導(dǎo)致需修改其對(duì)應(yīng)的get與set方法造成的麻煩,同時(shí)也可以消除冗余代碼;

1.3 在屬性上使用@Getter與@Setter注解

@Data注解修飾類時(shí),表示提供該類所有屬性的get與set方法,這對(duì)于某些屬性不希望被獲取是不夠靈活的,故而可以在屬性上使用@Getter與@Setter注解,以實(shí)現(xiàn)面向?qū)傩陨蒰et與set方法:

package com.example.demo2.controller;

import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.util.Date;

@ToString
public class MessageInfo {
    @Getter @Setter
    private String from;
    @Getter @Setter
    private String to;
    private String message;
    private Date CreateTime;
}

以上代碼的含義為:屬性from支持獲取與寫入,to支持獲?。?/p>

注:附lombok相較于@Data更細(xì)顆粒度的注解有:

注解

作用

@Getter自動(dòng)添加getter方法
@Setter自動(dòng)添加setter方法
@ToString自動(dòng)添加toString方法
@EqualAndHashCode自動(dòng)添加equals和hashCode方法
@NoArgsConstructor自動(dòng)添加無參構(gòu)造方法
@AllArgsConstructor自動(dòng)添加全屬性構(gòu)造方法,順序按照屬性的定義順序
@NonNull屬性不能為null
@RequireArgsConstructor自動(dòng)添加必須屬性的構(gòu)造方法,final+@Null的屬性為必須
@Data =
@Getter + @Setter +@ToString +@ EqualAndHashCode
+@ RequireArgsConstructor + @ NoArgsConstructor;

2. EditStarters插件+注解

2.1 安裝EditStarters插件

安裝完后重啟IDEA方可生效;

2.2 在pom.xml中進(jìn)行操作

直接增添lombok標(biāo)簽即可;

注:

  • 1、勿忘刷新maven;
  • 2、如果URL錯(cuò)誤,可更換為以下URL(選擇Gitee):

3、使用此方法生成的dependency如下:

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>

是沒有版本標(biāo)識(shí)的;

2.3 在java對(duì)象類中使用注解

注解使用方法同第一種方法,詳見方法1的2和3步驟;

3. lombok工具使用結(jié)果查看

3.1 手動(dòng)package

3.2 查看文件內(nèi)容

文件內(nèi)容如下:

//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//

package com.example.demo2.controller;

import java.util.Date;

public class MessageInfo {
    private String from;
    private String to;
    private String message;
    private Date CreateTime;

    public MessageInfo() {
    }

    public String toString() {
        return "MessageInfo(from=" + this.getFrom() + ", to=" + this.getTo() + ", message=" + this.message + ", CreateTime=" + this.CreateTime + ")";
    }

    public String getFrom() {
        return this.from;
    }

    public void setFrom(String from) {
        this.from = from;
    }

    public String getTo() {
        return this.to;
    }

    public void setTo(String to) {
        this.to = to;
    }
}

對(duì)比原始文件:

package com.example.demo2.controller;

import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.util.Date;

@ToString
public class MessageInfo {
    @Getter @Setter
    private String from;
    @Getter @Setter
    private String to;
    private String message;
    private Date CreateTime;
}

可見lombok在編譯階段生成了部分代碼;

注:此處雖然處于class目錄下,但該文件并不是字節(jié)碼文件,而是經(jīng)過idea反編譯的;

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java Maven依賴傳遞,可選依賴,排除依賴詳解

    Java Maven依賴傳遞,可選依賴,排除依賴詳解

    這篇文章主要介紹了Java Maven依賴傳遞,可選依賴,排除依賴詳解,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-09-09
  • EasyExcel自定義導(dǎo)出列和順序?qū)嵗a

    EasyExcel自定義導(dǎo)出列和順序?qū)嵗a

    這篇文章主要給大家介紹了關(guān)于EasyExcel自定義導(dǎo)出列和順序的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-07-07
  • Java的JNI快速入門教程(推薦)

    Java的JNI快速入門教程(推薦)

    下面小編就為大家?guī)硪黄狫ava的JNI快速入門教程(推薦)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-09-09
  • 詳解Java線程中斷知識(shí)點(diǎn)

    詳解Java線程中斷知識(shí)點(diǎn)

    在本篇文章中我們給大家分享了關(guān)于Java線程中斷的相關(guān)知識(shí)點(diǎn)內(nèi)容以及相關(guān)代碼實(shí)例,有興趣的朋友們可以學(xué)習(xí)下。
    2018-09-09
  • Java前端實(shí)現(xiàn)發(fā)送date類型的參數(shù)給后端

    Java前端實(shí)現(xiàn)發(fā)送date類型的參數(shù)給后端

    這篇文章主要介紹了Java前端實(shí)現(xiàn)發(fā)送date類型的參數(shù)給后端方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-06-06
  • Flowable中定時(shí)器的玩法詳解

    Flowable中定時(shí)器的玩法詳解

    這篇文章主要為大家詳細(xì)介紹了Flowable中定時(shí)器的各種玩法,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,感興趣的小伙伴可以跟隨小編一起了解一下
    2022-11-11
  • Java中excel表數(shù)據(jù)的批量導(dǎo)入方法

    Java中excel表數(shù)據(jù)的批量導(dǎo)入方法

    這篇文章主要為大家詳細(xì)介紹了Java中excel表數(shù)據(jù)的批量導(dǎo)入方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • Mybatis?Plus?逆向工程介紹

    Mybatis?Plus?逆向工程介紹

    這篇文章主要介紹了Mybatis?Plus?逆向工程,文章通過Mybatis?Plus?逆向工程相關(guān)資料及示例代碼詳細(xì)介紹,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考一下
    2022-01-01
  • lombok注解@Data使用在繼承類上時(shí)出現(xiàn)警告的問題及解決

    lombok注解@Data使用在繼承類上時(shí)出現(xiàn)警告的問題及解決

    Lombok的@Data注解簡(jiǎn)化了實(shí)體類代碼,但在子類中使用時(shí)會(huì)出現(xiàn)警告,指出equals和hashCode方法不會(huì)考慮父類屬性,解決方法有兩種:一是在父類上使用@EqualsAndHashCode(callSuper=true)注解;二是通過配置lombok.config文件,均能有效解決警告問題
    2024-10-10
  • Filter中獲取傳遞參數(shù)方式(解決post請(qǐng)求參數(shù)問題)

    Filter中獲取傳遞參數(shù)方式(解決post請(qǐng)求參數(shù)問題)

    這篇文章主要介紹了Filter中獲取傳遞參數(shù)方式(解決post請(qǐng)求參數(shù)問題),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08

最新評(píng)論

始兴县| 城固县| 灵台县| 铁力市| 鲁甸县| 吕梁市| 青川县| 桦南县| 麦盖提县| 南乐县| 永善县| 互助| 日土县| 威远县| 界首市| 航空| 克拉玛依市| 皋兰县| 个旧市| 和平县| 绥芬河市| 乌拉特中旗| 正安县| 麻江县| 大洼县| 潞城市| 宿松县| 达州市| 密山市| 建始县| 建昌县| 平和县| 兴仁县| 巴彦淖尔市| 义马市| 鄱阳县| 邵阳县| 临安市| 漠河县| 四会市| 海门市|