從 Java 8 開始,便引入了一種稱為“流式 API”的編程風格,當然也被稱為“鏈式設置”或“鏈式調用”。它主要是通過設置方法的返回值,讓返回值變為對象自身,從而實現連續的方法調用,這種風格就叫做“鏈式設置”或“鏈式調用”。
例如,以下代碼:
MySQLConnectOptions connectOptions = new MySQLConnectOptions() .setPort(3306) .setHost("127.0.0.1") .setDatabase("mydb") .setUser("root") .setPassword("root");
其屬性的設置就稱為鏈式調用或鏈式設置。
使用鏈式調用主要有以下幾個優點:
總的來說,鏈式設置提高了代碼的可讀性和可組合性,使得代碼更加簡潔、靈活和易于維護。
鏈式調用的主要實現方式,總共有以下 4 種:
具體實現如下。
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);
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);
使用 @Builder 注解,會自動生成一個 Builder 類,通過該 Builder 類可以鏈式地設置類的屬性并創建對象。這種方式在構建復雜對象時非常方便。
具體實現代碼如下:
import lombok.Builder;@Builderpublic class Student { private String name; private int age;}
鏈式調用代碼如下:
Student stu = Student.builder() .name("磊哥") .age(18) .build();
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 類都可以實現鏈式調用。
本文鏈接:http://www.www897cc.com/showinfo-26-45481-0.html被問住了:如何實現鏈式調用?
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com
上一篇: 深度解讀:Spring Boot啟動流程解析與應用實戰
下一篇: Python中Del語句,你真的了解了嗎