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

一文詳解java如何實現(xiàn)鏈式調用

 更新時間:2023年12月14日 14:00:37   作者:Java中文社群  
從?Java?8?開始,便引入了一種稱為“流式?API”的編程風格,當然也被稱為“鏈式設置”或“鏈式調用”,本文主要來和大家討論一下如何實現(xiàn)鏈式調用,感興趣的可以了解下

從 Java 8 開始,便引入了一種稱為“流式 API”的編程風格,當然也被稱為“鏈式設置”或“鏈式調用”。它主要是通過設置方法的返回值,讓返回值變?yōu)閷ο笞陨恚瑥亩鴮崿F(xiàn)連續(xù)的方法調用,這種風格就叫做“鏈式設置”或“鏈式調用”。

例如,以下代碼:

MySQLConnectOptions connectOptions = new MySQLConnectOptions()
    .setPort(3306)
    .setHost("127.0.0.1")
    .setDatabase("mydb")
    .setUser("root")
    .setPassword("root");

其屬性的設置就稱為鏈式調用或鏈式設置。

1.鏈式調用優(yōu)點

使用鏈式調用主要有以下幾個優(yōu)點:

  • 簡潔性:鏈式設置使得代碼更加簡潔和易讀。通過連續(xù)的方法調用,可以在一行代碼中完成多個操作,減少了代碼的冗余和嵌套。
  • 可讀性:鏈式設置可以提供更清晰、更自然的代碼流。每個方法調用都可以形成一個語義上的整體,使得代碼更易于理解。
  • 可組合性:鏈式設置可以方便地組合多個操作。每個方法返回的是對象自身或包含對象自身的容器,使得可以連續(xù)地進行多個操作,從而實現(xiàn)更復雜的功能。
  • 可擴展性:鏈式設置使得添加、修改或移除操作更加靈活。由于每個方法都是在對象自身上操作,并返回對象自身或包含對象自身的容器,可以輕松地添加新的操作或修改現(xiàn)有的操作。

總的來說,鏈式設置提高了代碼的可讀性和可組合性,使得代碼更加簡潔、靈活和易于維護。

2.鏈式調用實現(xiàn)

鏈式調用的主要實現(xiàn)方式,總共有以下 4 種:

  • Setter 原生方式
  • Lombok @Accessors 注解方式
  • Lombok @Builder 注解方式
  • Hutool GenericBuilder 方式

具體實現(xiàn)如下。

2.1 Setter 原生方式

Setter 原生方式的實現(xiàn)比較簡單,只需要設置 Setter 方法,并且每個 Setter 方法都返回自身對象即可,如下代碼所示:

public class Student {
    private String name;
    private int age;

    public Student name(String name) {
        this.name = name;
        return this;
    }

    public Student age(int age) {
        this.age = age;
        return this;
    }
}

鏈式調用代碼如下:

Student stu = new Student()
        .name("磊哥")
        .age(18);

2.2 Lombok @Accessors 注解方式

Lombok 是一個 Java 庫,它通過注解來簡化 Java 代碼的編寫。其中,@Accessors 注解可以開啟鏈式調用風格。

具體實現(xiàn)代碼如下:

@Getter
@Setter
@Accessors(chain = true)
public class Student {
    private String name;
    private int age;
}

在上面的示例中,使用了 @Accessors(chain = true) 注解來開啟鏈式調用風格。這樣就可以通過以下方式進行鏈式設置:

Student stu = new Student()
 .setName("John")
 .setAge(30);

2.3 Lombok @Builder 注解方式

使用 @Builder 注解,會自動生成一個 Builder 類,通過該 Builder 類可以鏈式地設置類的屬性并創(chuàng)建對象。這種方式在構建復雜對象時非常方便。

具體實現(xiàn)代碼如下:

import lombok.Builder;

@Builder
public class Student {
    private String name;
    private int age;
}

鏈式調用代碼如下:

Student stu = Student.builder()
    .name("磊哥")
    .age(18)
    .build();

2.4 Hutool GenericBuilder 方式

Hutool 是一個小而全的 Java 工具類庫,通過靜態(tài)方法封裝,降低相關 API 的學習成本,提高工作效率,使 Java 擁有函數(shù)式語言般的優(yōu)雅,讓 Java 語言也可以“甜甜的”。其中,Hutool 提供了 GenericBuilder 類,可以實現(xiàn)鏈式調用,具體實現(xiàn)代碼如下:

Student stu = GenericBuilder.of(Student::new)
                .with(Student::setName, "磊哥")
                .with(Student::setAge, 18)
                .build();

小結

使用鏈式調用(也叫做鏈式設置)提高了代碼的可讀性和可組合性,使得代碼更加簡潔、靈活和易于維護。而鏈式調用的常用實現(xiàn)方式有:原生 Setter 方式、Lombok 的 @Accessors 注解或 @Builder 注解實現(xiàn)方式,或者使用 Hutool 工具中提供的 GenericBuilder 類都可以實現(xiàn)鏈式調用。

到此這篇關于一文詳解java如何實現(xiàn)鏈式調用的文章就介紹到這了,更多相關java鏈式調用內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • SpringBoot 2.0 整合sharding-jdbc中間件實現(xiàn)數(shù)據(jù)分庫分表

    SpringBoot 2.0 整合sharding-jdbc中間件實現(xiàn)數(shù)據(jù)分庫分表

    這篇文章主要介紹了SpringBoot 2.0 整合sharding-jdbc中間件,實現(xiàn)數(shù)據(jù)分庫分表,本文圖文并茂給大家介紹的非常詳細,具有一定的參考借鑒價值 ,需要的朋友可以參考下
    2019-06-06
  • JSON在Java中的使用方法實例

    JSON在Java中的使用方法實例

    對于java來說,json的對象也是分為JSONObject和JSONArray這兩種,每種對象的操作方式不一樣哦,下面這篇文章主要給大家介紹了關于JSON在Java中使用的相關資料,需要的朋友可以參考下
    2023-03-03
  • Java線程池中的各個參數(shù)如何合理設置

    Java線程池中的各個參數(shù)如何合理設置

    這篇文章主要介紹了Java線程池中的各個參數(shù)如何合理設置操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • 自定義注解+Spel實現(xiàn)分布式鎖方式

    自定義注解+Spel實現(xiàn)分布式鎖方式

    這篇文章主要介紹了自定義注解+Spel實現(xiàn)分布式鎖方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • MybatisPlus多表連接查詢的問題及解決方案

    MybatisPlus多表連接查詢的問題及解決方案

    MybatisPlus官方并沒有提供多表連接查詢的通用解決方案,然而連接查詢是相當普遍的需求,今天通過本文給大家介紹下MybatisPlus多表連接查詢的問題及解決方案,感興趣的朋友一起看看吧
    2022-01-01
  • Java中的Semaphore原理解析

    Java中的Semaphore原理解析

    這篇文章主要介紹了Java中的Semaphore原理解析,Semaphore(信號量)是用來控制同時訪問特定資源的線程數(shù)量,它通過協(xié)調各個線程,以保證合理的使用公共資源,需要的朋友可以參考下
    2024-01-01
  • Java Spring 聲明式事務詳解

    Java Spring 聲明式事務詳解

    這篇文章主要介紹了spring 聲明式事務實現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2021-09-09
  • Java實現(xiàn)文件上傳到服務器本地并通過url訪問的方法步驟

    Java實現(xiàn)文件上傳到服務器本地并通過url訪問的方法步驟

    最近項目中使用到了文件上傳到服務器的功能,下面這篇文章主要給大家介紹了關于Java實現(xiàn)文件上傳到服務器本地并通過url訪問的方法步驟,文中通過圖文以及實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-04-04
  • Java Volatile關鍵字實現(xiàn)原理過程解析

    Java Volatile關鍵字實現(xiàn)原理過程解析

    這篇文章主要介紹了Java Volatile關鍵字實現(xiàn)原理過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-03-03
  • SpringBoot結合prometheus自定義埋點方式

    SpringBoot結合prometheus自定義埋點方式

    文章介紹了如何使用Spring Actuator、Prometheus和Grafana進行度量統(tǒng)計收集、數(shù)據(jù)收集和數(shù)據(jù)展示,以監(jiān)控生成環(huán)境機器的性能指標和業(yè)務數(shù)據(jù)指標
    2024-12-12

最新評論