Java鏈式調用實戰(zhàn)指南(4種實現(xiàn)方式詳解)
例如,以下代碼:
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鏈式調用實戰(zhàn):4種實現(xiàn)方式詳解的文章就介紹到這了,更多相關java鏈式調用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
使用@Autowired注解警告Field injection is not recommended的解決
這篇文章主要介紹了使用@Autowired注解警告Field injection is not recommended的解決,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-04-04
基于 SpringBoot 實現(xiàn) MySQL 讀寫分離的問題
這篇文章主要介紹了基于 SpringBoot 實現(xiàn) MySQL 讀寫分離的問題,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-02-02
Spring Boot全局異常處理保姆級教程從入門到實戰(zhàn)(看完秒懂)
本文講解SpringBoot全局異常處理,通過@RestControllerAdvice集中處理異常,統(tǒng)一響應格式,提升代碼簡潔性與安全性,涵蓋業(yè)務異常、參數(shù)校驗及系統(tǒng)異常處理,避免敏感信息泄露,并提供日志記錄與狀態(tài)碼自定義等進階技巧,感興趣的朋友跟隨小編一起看看吧2025-06-06

