最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java鏈?zhǔn)秸{(diào)用實(shí)戰(zhàn)指南(4種實(shí)現(xiàn)方式詳解)

 更新時(shí)間:2025年12月17日 10:36:29   作者:合鳥啊  
本文介紹了Java中的鏈?zhǔn)秸{(diào)用,包括其優(yōu)點(diǎn)和實(shí)現(xiàn)方式,鏈?zhǔn)秸{(diào)用通過(guò)對(duì)象自身返回,使得代碼更加簡(jiǎn)潔、易讀和可組合,本文給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧

例如,以下代碼:

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è)置。

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

使用鏈?zhǔn)秸{(diào)用主要有以下幾個(gè)優(yōu)點(diǎn):

  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ù)。

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

鏈?zhǔn)秸{(diào)用的主要實(shí)現(xiàn)方式,總共有以下 4 種:

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

具體實(shí)現(xiàn)如下。

2.1 Setter 原生方式

Setter 原生方式的實(shí)現(xiàn)比較簡(jiǎn)單,只需要設(shè)置 Setter 方法,并且每個(gè) Setter 方法都返回自身對(duì)象即可,如下代碼所示:

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)用代碼如下:

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

2.2 Lombok @Accessors 注解方式

Lombok 是一個(gè) Java 庫(kù),它通過(guò)注解來(lái)簡(jiǎn)化 Java 代碼的編寫。其中,@Accessors 注解可以開啟鏈?zhǔn)秸{(diào)用風(fēng)格。

具體實(shí)現(xiàn)代碼如下:

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

在上面的示例中,使用了 @Accessors(chain = true) 注解來(lái)開啟鏈?zhǔn)秸{(diào)用風(fēng)格。這樣就可以通過(guò)以下方式進(jìn)行鏈?zhǔn)皆O(shè)置:

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í)非常方便。

具體實(shí)現(xiàn)代碼如下:

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

鏈?zhǔn)秸{(diào)用代碼如下:

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)代碼如下:

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)用。

到此這篇關(guān)于Java鏈?zhǔn)秸{(diào)用實(shí)戰(zhàn):4種實(shí)現(xiàn)方式詳解的文章就介紹到這了,更多相關(guān)java鏈?zhǔn)秸{(diào)用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringCloud微服務(wù)踩坑記錄分享

    SpringCloud微服務(wù)踩坑記錄分享

    本文記錄了作者在使用SpringCloud微服務(wù)時(shí)遇到的問(wèn)題,首先,作者嘗試修改配置文件中的service-name和instance-id,但仍然無(wú)法解決問(wèn)題,后來(lái),作者嘗試更換SpringCloud版本為2.2.5,并搭配Hoxton.SR3版本,問(wèn)題得以解決
    2024-11-11
  • 使用@Autowired注解警告Field injection is not recommended的解決

    使用@Autowired注解警告Field injection is not recommended的解決

    這篇文章主要介紹了使用@Autowired注解警告Field injection is not recommended的解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • Java如何自定義異常打印非堆棧信息詳解

    Java如何自定義異常打印非堆棧信息詳解

    這篇文章主要給大家介紹了關(guān)于Java如何自定義異常打印非堆棧信息的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-04-04
  • 基于 SpringBoot 實(shí)現(xiàn) MySQL 讀寫分離的問(wèn)題

    基于 SpringBoot 實(shí)現(xiàn) MySQL 讀寫分離的問(wèn)題

    這篇文章主要介紹了基于 SpringBoot 實(shí)現(xiàn) MySQL 讀寫分離的問(wèn)題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-02-02
  • Java過(guò)濾器Filter詳解

    Java過(guò)濾器Filter詳解

    這篇文章主要介紹了java過(guò)濾器中Filter,發(fā)送請(qǐng)求時(shí),如果有不符合的信息將會(huì)被filter進(jìn)行攔截,如果符合則會(huì)進(jìn)行放行。如果感興趣可以來(lái)學(xué)習(xí)一下
    2021-08-08
  • Sprigmvc項(xiàng)目轉(zhuǎn)為springboot的方法

    Sprigmvc項(xiàng)目轉(zhuǎn)為springboot的方法

    本篇文章主要介紹了Sprigmvc項(xiàng)目轉(zhuǎn)為springboot的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-02-02
  • Spring Boot全局異常處理保姆級(jí)教程從入門到實(shí)戰(zhàn)(看完秒懂)

    Spring Boot全局異常處理保姆級(jí)教程從入門到實(shí)戰(zhàn)(看完秒懂)

    本文講解SpringBoot全局異常處理,通過(guò)@RestControllerAdvice集中處理異常,統(tǒng)一響應(yīng)格式,提升代碼簡(jiǎn)潔性與安全性,涵蓋業(yè)務(wù)異常、參數(shù)校驗(yàn)及系統(tǒng)異常處理,避免敏感信息泄露,并提供日志記錄與狀態(tài)碼自定義等進(jìn)階技巧,感興趣的朋友跟隨小編一起看看吧
    2025-06-06
  • JUnit單元測(cè)試入門必看篇

    JUnit單元測(cè)試入門必看篇

    下面小編就為大家分享一篇JUnit單元測(cè)試入門必看篇,對(duì)新手而言有很好的參考價(jià)值,希望對(duì)大家有所幫助
    2017-11-11
  • SpringBoot中常用注解的使用合集

    SpringBoot中常用注解的使用合集

    注解?annotation一般是用來(lái)定義一個(gè)類、屬性和一些方法,以便程序能夠被編譯處理,本文為大家整理了SpringBoot中的常用注解以及它們的使用,需要的可以參考下
    2023-07-07
  • Java并發(fā)編程之線程創(chuàng)建介紹

    Java并發(fā)編程之線程創(chuàng)建介紹

    這篇文章主要介紹了Java并發(fā)編程之線程創(chuàng)建,進(jìn)程是代碼在數(shù)據(jù)集合上的一次運(yùn)行活動(dòng),是系統(tǒng)進(jìn)行資源分配和調(diào)度的基本單位,線程則是一個(gè)實(shí)體,一個(gè)進(jìn)程中至少有一個(gè)線程,下文更多相關(guān)內(nèi)容需要的小伙伴可以參考一下
    2022-04-04

最新評(píng)論

崇左市| 囊谦县| 通许县| 杭锦后旗| 高邮市| 邢台县| 汉源县| 南昌县| 宽城| 武隆县| 通州市| 博罗县| 清苑县| 信丰县| 庆元县| 云龙县| 漳浦县| 滨州市| 阆中市| 子长县| 集贤县| 奉化市| 温宿县| 浮山县| 喀喇沁旗| 洪江市| 方城县| 全州县| 上饶市| 四会市| 鄂州市| 巴林左旗| 车险| 黔西| 隆安县| 齐河县| 介休市| 兴义市| 汤原县| 北海市| 扎鲁特旗|