日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

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

來源: 責編: 時間:2023-12-14 16:37:20 253觀看
導讀從 Java 8 開始,便引入了一種稱為“流式 API”的編程風格,當然也被稱為“鏈式設置”或“鏈式調用”。它主要是通過設置方法的返回值,讓返回值變為對象自身,從而實現連續的方法調用,這種風格就叫做“鏈式設置”或“鏈式調用

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

例如,以下代碼:EbQ28資訊網——每日最新資訊28at.com

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

其屬性的設置就稱為鏈式調用或鏈式設置。EbQ28資訊網——每日最新資訊28at.com

1.鏈式調用優點

使用鏈式調用主要有以下幾個優點:EbQ28資訊網——每日最新資訊28at.com

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

總的來說,鏈式設置提高了代碼的可讀性和可組合性,使得代碼更加簡潔、靈活和易于維護。EbQ28資訊網——每日最新資訊28at.com

2.鏈式調用實現

鏈式調用的主要實現方式,總共有以下 4 種:EbQ28資訊網——每日最新資訊28at.com

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

具體實現如下。EbQ28資訊網——每日最新資訊28at.com

2.1 Setter 原生方式

Setter 原生方式的實現比較簡單,只需要設置 Setter 方法,并且每個 Setter 方法都返回自身對象即可,如下代碼所示:EbQ28資訊網——每日最新資訊28at.com

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

鏈式調用代碼如下:EbQ28資訊網——每日最新資訊28at.com

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

2.2 Lombok @Accessors 注解方式

Lombok 是一個 Java 庫,它通過注解來簡化 Java 代碼的編寫。其中,@Accessors 注解可以開啟鏈式調用風格。EbQ28資訊網——每日最新資訊28at.com

具體實現代碼如下:EbQ28資訊網——每日最新資訊28at.com

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

在上面的示例中,使用了 @Accessors(chain = true) 注解來開啟鏈式調用風格。這樣就可以通過以下方式進行鏈式設置:EbQ28資訊網——每日最新資訊28at.com

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

2.3 Lombok @Builder 注解方式

使用 @Builder 注解,會自動生成一個 Builder 類,通過該 Builder 類可以鏈式地設置類的屬性并創建對象。這種方式在構建復雜對象時非常方便。EbQ28資訊網——每日最新資訊28at.com

具體實現代碼如下:EbQ28資訊網——每日最新資訊28at.com

import lombok.Builder;@Builderpublic class Student {    private String name;    private int age;}

鏈式調用代碼如下:EbQ28資訊網——每日最新資訊28at.com

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

2.4 Hutool GenericBuilder 方式

Hutool 是一個小而全的 Java 工具類庫,通過靜態方法封裝,降低相關 API 的學習成本,提高工作效率,使 Java 擁有函數式語言般的優雅,讓 Java 語言也可以“甜甜的”。其中,Hutool 提供了 GenericBuilder 類,可以實現鏈式調用,具體實現代碼如下:EbQ28資訊網——每日最新資訊28at.com

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

小結

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

本文鏈接:http://www.www897cc.com/showinfo-26-45481-0.html被問住了:如何實現鏈式調用?

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 深度解讀:Spring Boot啟動流程解析與應用實戰

下一篇: Python中Del語句,你真的了解了嗎

標簽:
  • 熱門焦點
Top 主站蜘蛛池模板: 萍乡市| 普兰店市| 阳新县| 梓潼县| 鄂伦春自治旗| 通州区| 循化| 化隆| 江陵县| 思南县| 崇州市| 内丘县| 荆门市| 安龙县| 伊春市| 上思县| 井陉县| 黔西| 南京市| 宜州市| 江陵县| 江津市| 辰溪县| 色达县| 彭山县| 祁东县| 涟源市| 延吉市| 武陟县| 宁国市| 清苑县| 玛沁县| 云梦县| 牙克石市| 清水河县| 白朗县| 桓仁| 凯里市| 太原市| 衡山县| 镇康县|