成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

被問住了:如何實現鏈式調用?

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

從 Java 8 開始,便引入了一種稱為“流式 API”的編程風格,當然也被稱為“鏈式設置”或“鏈式調用”。它主要是通過設置方法的返回值,讓返回值變為對象自身,從而實現連續的方法調用,這種風格就叫做“鏈式設置”或“鏈式調用”。

例如,以下代碼:

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

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

1.鏈式調用優點

使用鏈式調用主要有以下幾個優點:

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

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

2.鏈式調用實現

鏈式調用的主要實現方式,總共有以下 4 種:

  1. Setter 原生方式
  2. Lombok @Accessors 注解方式
  3. Lombok @Builder 注解方式
  4. Hutool GenericBuilder 方式

具體實現如下。

2.1 Setter 原生方式

Setter 原生方式的實現比較簡單,只需要設置 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 注解可以開啟鏈式調用風格。

具體實現代碼如下:

@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 類可以鏈式地設置類的屬性并創建對象。這種方式在構建復雜對象時非常方便。

具體實現代碼如下:

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 工具類庫,通過靜態方法封裝,降低相關 API 的學習成本,提高工作效率,使 Java 擁有函數式語言般的優雅,讓 Java 語言也可以“甜甜的”。其中,Hutool 提供了 GenericBuilder 類,可以實現鏈式調用,具體實現代碼如下:

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

小結

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

責任編輯:武曉燕 來源: Java中文社群
相關推薦

2023-11-22 09:30:50

e簽寶面試企業面經

2023-01-18 10:35:49

MySQL數據庫

2025-05-20 08:00:00

鏈式調用異步

2009-07-01 14:37:14

JavaScript異

2012-03-13 11:21:34

索尼AndroidVita OS

2022-11-15 07:50:47

ORM鏈式操作刪除

2022-11-11 07:48:56

ORM鏈式輪播圖

2024-11-07 08:28:53

2021-09-13 20:38:47

Python鏈式調用

2021-03-12 21:19:15

Python鏈式調用

2009-07-01 14:31:01

JavaScript異

2024-07-29 07:02:00

OpenAIGPT-4oAI

2021-06-27 21:06:47

開發循環依賴

2018-07-20 09:16:04

鏈式存儲結構

2023-02-17 07:27:28

2021-01-29 13:29:53

系統調用

2022-06-24 09:36:47

Python對象調用

2020-05-06 10:10:51

Python代碼鏈式調用

2024-12-19 09:05:13

Python鏈式調用

2022-07-18 10:45:18

安全
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩中文字幕免费在线观看 | 一级片在线视频 | 亚洲一区二区三区在线免费 | 在线观看国产 | 91精品91久久久 | 精品中文字幕在线观看 | 天天看夜夜 | 国产精品视频在线观看 | 亚洲一区二区三区在线免费观看 | 99re国产视频 | 亚洲三级av | 国产精品资源在线观看 | 99视频免费在线观看 | 亚洲第一中文字幕 | 久久久久久久一区 | 亚洲精品18 | 最新中文字幕第一页视频 | 亚洲欧美一区二区三区情侣bbw | 日本亚洲欧美 | 亚洲一区二区三区在线视频 | 日本一区二区高清不卡 | 日日综合 | 国产视频精品视频 | 亚洲精品一区二区三区四区高清 | 亚洲欧美视频 | 国产精品久久久久久久久久免费 | 青春草91| 一级做a爰片性色毛片视频停止 | 久久一区 | 久草欧美 | 夜夜操天天艹 | 色欧美综合 | 中文字幕av一区二区三区 | 欧美精品综合在线 | 欧美h| 九九国产| 国产一区二区在线免费观看 | 亚洲精品一区二区三区 | 国产不卡在线播放 | 欧美 日韩 视频 | 欧美精品日韩精品国产精品 |