欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java工具包之Lombok使用

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

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

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

接下來簡單介紹lombok的使用方法;

使用lombok有兩種方法:

(1)maven倉庫手動導入依賴+注解;

(2)EditStarters插件+注解;

1. maven倉庫手動導入依賴+注解

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面板中進行刷新:

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;
}

此時在對應的Controller中增加相應的獲取屬性的get方法,即使沒有顯式編寫相關代碼,但可見可以成功調(diào)用: (.getFrom()方法未標紅報錯)

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;
    }
}

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

@Data注解就是lombok提供的通過注解自動生成屬性的get與set方法,可避免修改接口屬性導致需修改其對應的get與set方法造成的麻煩,同時也可以消除冗余代碼;

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

@Data注解修飾類時,表示提供該類所有屬性的get與set方法,這對于某些屬性不希望被獲取是不夠靈活的,故而可以在屬性上使用@Getter與@Setter注解,以實現(xiàn)面向屬性生成get與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支持獲??;

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

注解

作用

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

2. EditStarters插件+注解

2.1 安裝EditStarters插件

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

2.2 在pom.xml中進行操作

直接增添lombok標簽即可;

注:

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

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

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

是沒有版本標識的;

2.3 在java對象類中使用注解

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

3. lombok工具使用結果查看

3.1 手動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;
    }
}

對比原始文件:

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反編譯的;

總結

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

相關文章

最新評論