AVt天堂网 手机版,亚洲va久久久噜噜噜久久4399,天天综合亚洲色在线精品,亚洲一级Av无码毛片久久精品

當(dāng)前位置:首頁(yè) > 科技  > 軟件

被問(wèn)住了:如何實(shí)現(xiàn)鏈?zhǔn)秸{(diào)用?

來(lái)源: 責(zé)編: 時(shí)間:2023-12-14 16:37:20 243觀看
導(dǎo)讀從 Java 8 開(kāi)始,便引入了一種稱為“流式 API”的編程風(fēng)格,當(dāng)然也被稱為“鏈?zhǔn)皆O(shè)置”或“鏈?zhǔn)秸{(diào)用”。它主要是通過(guò)設(shè)置方法的返回值,讓返回值變?yōu)閷?duì)象自身,從而實(shí)現(xiàn)連續(xù)的方法調(diào)用,這種風(fēng)格就叫做“鏈?zhǔn)皆O(shè)置”或“鏈?zhǔn)秸{(diào)用

從 Java 8 開(kāi)始,便引入了一種稱為“流式 API”的編程風(fēng)格,當(dāng)然也被稱為“鏈?zhǔn)皆O(shè)置”或“鏈?zhǔn)秸{(diào)用”。它主要是通過(guò)設(shè)置方法的返回值,讓返回值變?yōu)閷?duì)象自身,從而實(shí)現(xiàn)連續(xù)的方法調(diào)用,這種風(fēng)格就叫做“鏈?zhǔn)皆O(shè)置”或“鏈?zhǔn)秸{(diào)用”。DPc28資訊網(wǎng)——每日最新資訊28at.com

例如,以下代碼:DPc28資訊網(wǎng)——每日最新資訊28at.com

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

其屬性的設(shè)置就稱為鏈?zhǔn)秸{(diào)用或鏈?zhǔn)皆O(shè)置。DPc28資訊網(wǎng)——每日最新資訊28at.com

1.鏈?zhǔn)秸{(diào)用優(yōu)點(diǎn)

使用鏈?zhǔn)秸{(diào)用主要有以下幾個(gè)優(yōu)點(diǎn):DPc28資訊網(wǎng)——每日最新資訊28at.com

  1. 簡(jiǎn)潔性:鏈?zhǔn)皆O(shè)置使得代碼更加簡(jiǎn)潔和易讀。通過(guò)連續(xù)的方法調(diào)用,可以在一行代碼中完成多個(gè)操作,減少了代碼的冗余和嵌套。
  2. 可讀性:鏈?zhǔn)皆O(shè)置可以提供更清晰、更自然的代碼流。每個(gè)方法調(diào)用都可以形成一個(gè)語(yǔ)義上的整體,使得代碼更易于理解。
  3. 可組合性:鏈?zhǔn)皆O(shè)置可以方便地組合多個(gè)操作。每個(gè)方法返回的是對(duì)象自身或包含對(duì)象自身的容器,使得可以連續(xù)地進(jìn)行多個(gè)操作,從而實(shí)現(xiàn)更復(fù)雜的功能。
  4. 可擴(kuò)展性:鏈?zhǔn)皆O(shè)置使得添加、修改或移除操作更加靈活。由于每個(gè)方法都是在對(duì)象自身上操作,并返回對(duì)象自身或包含對(duì)象自身的容器,可以輕松地添加新的操作或修改現(xiàn)有的操作。

總的來(lái)說(shuō),鏈?zhǔn)皆O(shè)置提高了代碼的可讀性和可組合性,使得代碼更加簡(jiǎn)潔、靈活和易于維護(hù)。DPc28資訊網(wǎng)——每日最新資訊28at.com

2.鏈?zhǔn)秸{(diào)用實(shí)現(xiàn)

鏈?zhǔn)秸{(diào)用的主要實(shí)現(xiàn)方式,總共有以下 4 種:DPc28資訊網(wǎng)——每日最新資訊28at.com

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

具體實(shí)現(xiàn)如下。DPc28資訊網(wǎng)——每日最新資訊28at.com

2.1 Setter 原生方式

Setter 原生方式的實(shí)現(xiàn)比較簡(jiǎn)單,只需要設(shè)置 Setter 方法,并且每個(gè) Setter 方法都返回自身對(duì)象即可,如下代碼所示:DPc28資訊網(wǎng)——每日最新資訊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;    }}

鏈?zhǔn)秸{(diào)用代碼如下:DPc28資訊網(wǎng)——每日最新資訊28at.com

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

2.2 Lombok @Accessors 注解方式

Lombok 是一個(gè) Java 庫(kù),它通過(guò)注解來(lái)簡(jiǎn)化 Java 代碼的編寫。其中,@Accessors 注解可以開(kāi)啟鏈?zhǔn)秸{(diào)用風(fēng)格。DPc28資訊網(wǎng)——每日最新資訊28at.com

具體實(shí)現(xiàn)代碼如下:DPc28資訊網(wǎng)——每日最新資訊28at.com

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

在上面的示例中,使用了 @Accessors(chain = true) 注解來(lái)開(kāi)啟鏈?zhǔn)秸{(diào)用風(fēng)格。這樣就可以通過(guò)以下方式進(jìn)行鏈?zhǔn)皆O(shè)置:DPc28資訊網(wǎng)——每日最新資訊28at.com

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

2.3 Lombok @Builder 注解方式

使用 @Builder 注解,會(huì)自動(dòng)生成一個(gè) Builder 類,通過(guò)該 Builder 類可以鏈?zhǔn)降卦O(shè)置類的屬性并創(chuàng)建對(duì)象。這種方式在構(gòu)建復(fù)雜對(duì)象時(shí)非常方便。DPc28資訊網(wǎng)——每日最新資訊28at.com

具體實(shí)現(xiàn)代碼如下:DPc28資訊網(wǎng)——每日最新資訊28at.com

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

鏈?zhǔn)秸{(diào)用代碼如下:DPc28資訊網(wǎng)——每日最新資訊28at.com

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

2.4 Hutool GenericBuilder 方式

Hutool 是一個(gè)小而全的 Java 工具類庫(kù),通過(guò)靜態(tài)方法封裝,降低相關(guān) API 的學(xué)習(xí)成本,提高工作效率,使 Java 擁有函數(shù)式語(yǔ)言般的優(yōu)雅,讓 Java 語(yǔ)言也可以“甜甜的”。其中,Hutool 提供了 GenericBuilder 類,可以實(shí)現(xiàn)鏈?zhǔn)秸{(diào)用,具體實(shí)現(xiàn)代碼如下:DPc28資訊網(wǎng)——每日最新資訊28at.com

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

小結(jié)

使用鏈?zhǔn)秸{(diào)用(也叫做鏈?zhǔn)皆O(shè)置)提高了代碼的可讀性和可組合性,使得代碼更加簡(jiǎn)潔、靈活和易于維護(hù)。而鏈?zhǔn)秸{(diào)用的常用實(shí)現(xiàn)方式有:原生 Setter 方式、Lombok 的 @Accessors 注解或 @Builder 注解實(shí)現(xiàn)方式,或者使用 Hutool 工具中提供的 GenericBuilder 類都可以實(shí)現(xiàn)鏈?zhǔn)秸{(diào)用。DPc28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.tebozhan.com/showinfo-26-45481-0.html被問(wèn)住了:如何實(shí)現(xiàn)鏈?zhǔn)秸{(diào)用?

聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com

上一篇: 深度解讀:Spring Boot啟動(dòng)流程解析與應(yīng)用實(shí)戰(zhàn)

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

標(biāo)簽:
  • 熱門焦點(diǎn)
Top