Lombok常用註解詳解

一、Lombok常用註解及含義

Lombok是一款Java庫,可以通過註解的方式來減少一些模板代碼,提高開發效率和代碼的可讀性。Lombok常用註解如下:

  • @Getter/@Setter: 自動生成JavaBean的getter/setter方法。
  • @ToString: 自動生成ToString方法。
  • @EqualsAndHashCode: 自動生成equals和hashCode方法。
  • @NoArgsConstructor/@RequiredArgsConstructor/@AllArgsConstructor: 自動生成無參/指定參數/所有參數的構造函數。
  • @Data: 包含@Getter,@Setter,@ToString,@EqualsAndHashCode和@RequiredArgsConstructor,常用於值對象。
  • @Builder: 鏈式調用生成器模式,簡化對象創建過程。
    @Data
    public class User {
        private Long id;
        private String name;
        private String email;
    }

上面的代碼使用@Data註解,等同於同時使用了@Getter、@Setter、@ToString、@EqualsAndHashCode和@RequiredArgsConstructor註解。

二、Lombok異常註解

Lombok還提供了一些異常處理相關的註解,如下:

  • @SneakyThrows: 在方法內部自動捕獲並忽略異常,等效於try-catch。使用時,需要保證被標註方法的簽名拋出聲明的異常。
  • @Getter(lazy=true): 延遲加載,只有在第一次使用時才進行初始化。如果在初始化時拋出異常,則後續調用將拋出NullPointerException。
  • @NonNull: 用在參數上,可以生成參數非空判斷,如果參數為空,則拋出NullPointerException。
    @SneakyThrows(ReflectiveOperationException.class)
    public void test() {
        //some reflection code
    }
    
    public class User {
        @Getter(lazy=true)
        private final String fullName = computeFullName();
        private String computeFullName() {
            //some logic to compute fullName
        }
    }
    
    public void doSomething(@NonNull String arg) {
        //some logic
    }

三、Lombok註解的默認值

有些Lombok註解可以指定一些默認值,如下:

  • @Builder: 可以設置builder名稱。
  • @Value: 默認final、@ToString、@EqualsAndHashCode、@AllArgsConstructor、@FieldDefaults。
  • @NoArgsConstructor/@AllArgsConstructor: 可以指定訪問級別。
    @Builder(builderMethodName="myBuilder")
    public class User {
        private Long id;
        private String name;
        private String email;
    }
    
    @Value(staticConstructor="of")
    public class Address {
        String city;
        String street;
        int number;
    }
    
    @NoArgsConstructor(access=AccessLevel.PROTECTED) //設置訪問級別為protected
    public class Person {
        private Long id;
        private String name;
    }

四、Lombok註解啟用

在使用Lombok時,需要在編譯器中安裝Lombok插件,並在項目中引入Lombok庫。同時,需要在項目中添加如下依賴項:

    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>${org.projectlombok-version}</version>
        <scope>provided</scope>
    </dependency>

五、Lombok builder註解使用

使用Lombok builder註解可以輕鬆實現Builder模式,可以方便地創建對象,在對象的屬性比較多時使用較為方便。

    User user = User.builder()
        .id(1L)
        .name("Lily")
        .email("lily@example.com")
        .build();

六、Lombok怎麼用

在開發過程中,如果使用了Lombok註解,可以通過以下步驟來進行驗證:

  • 安裝Lombok插件
  • 在項目中引入Lombok庫
  • 在代碼中使用Lombok註解
  • 編譯並運行項目

七、Lombok的data註解

使用Lombok的@Data註解可以讓JavaBean類的定義更簡單,但需要注意的是,當屬性較多時,可能會出現無限遞歸的問題。此時,可以通過對不需要的字段使用@ToString.Exclude和@EqualsAndHashCode.Exclude來排除該字段。

    @Data
    public class User {
        private Long id;
        private String name;
        @ToString.Exclude
        private String email;
    }

八、Lombok自定義註解

使用Lombok提供的註解可以快速地生成簡潔的Java代碼,在實際開發過程中,如果需要使用自定義的註解,可以通過定義註解,並在代碼中使用該註解來實現。

    @Retention(RetentionPolicy.RUNTIME)
    @Target(ElementType.METHOD)
    public @interface LogExecutionTime {
    }

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/287333.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-23 13:07
下一篇 2024-12-23 13:07

相關推薦

  • Python 常用數據庫有哪些?

    在Python編程中,數據庫是不可或缺的一部分。隨着互聯網應用的不斷擴大,處理海量數據已成為一種趨勢。Python有許多成熟的數據庫管理系統,接下來我們將從多個方面介紹Python…

    編程 2025-04-29
  • Hibernate註解聯合主鍵 如何使用

    解答:Hibernate的註解方式可以用來定義聯合主鍵,使用@Embeddable和@EmbeddedId註解。 一、@Embeddable和@EmbeddedId註解 在Hibe…

    編程 2025-04-29
  • Python序列的常用操作

    Python序列是程序中的重要工具,在數據分析、機器學習、圖像處理等很多領域都有廣泛的應用。Python序列分為三種:列表(list)、元組(tuple)和字符串(string)。…

    編程 2025-04-28
  • 上傳多媒體文件的常用方法——uploadmediabyurl

    uploadmediabyurl是一個非常常用的方法,它允許我們將本地的多媒體文件上傳到微信服務器上。 一、uploadmediabyurl的基本使用方法 要使用uploadmed…

    編程 2025-04-27
  • Python數據看板開發:常用的包及其使用

    隨着數據分析和可視化的需求日漸增長,數據看板作為一種高效展示複雜數據信息的工具應運而生。Python語言作為一種面向數據分析和科學計算的編程語言,在數據看板開發中有着廣泛的應用。本…

    編程 2025-04-27
  • Python常用庫

    Python是一種高級編程語言,擁有豐富的第三方包和工具,常用庫涵蓋了各種應用場景。在此,我們將從以下幾個方面對Python常用庫進行闡述: 一、數據分析 數據分析是Python的…

    編程 2025-04-27
  • Python在運維中的常用庫

    Python被廣泛應用於各種Web應用程序、數據分析、自動運維、AI應用等領域。在運維領域,Python成為了最常用的編程語言之一。在本文中,我們將會討論Python運維中常用的庫…

    編程 2025-04-27
  • Python常用斷言函數用法介紹

    本文將詳細介紹Python中常用的斷言函數,讓大家了解這些函數的作用及使用方法,以便於進行代碼測試和調試。 一、assertEqual函數 1、assertEqual函數是Pyth…

    編程 2025-04-27
  • Python常用函數用法介紹

    Python是一種高級編程語言,擁有強大且易於使用的函數庫,可以輕鬆實現各種任務。本文將詳細介紹Python中常用的函數,包括字符串、數字、列表、字典、日期等方面的常見函數。 一、…

    編程 2025-04-27
  • Linux sync詳解

    一、sync概述 sync是Linux中一個非常重要的命令,它可以將文件系統緩存中的內容,強制寫入磁盤中。在執行sync之前,所有的文件系統更新將不會立即寫入磁盤,而是先緩存在內存…

    編程 2025-04-25

發表回復

登錄後才能評論