成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

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

開發 前端
使用鏈式調用(也叫做鏈式設置)提高了代碼的可讀性和可組合性,使得代碼更加簡潔、靈活和易于維護。而鏈式調用的常用實現方式有:原生 Setter 方式、Lombok 的 @Accessors 注解或 @Builder 注解實現方式,或者使用 Hutool 工具中提供的 GenericBuilder 類都可以實現鏈式調用。

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

例如,以下代碼:

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

其屬性的設置就稱為鏈式調用或鏈式設置。

1.鏈式調用優點

使用鏈式調用主要有以下幾個優點:

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

總的來說,鏈式設置提高了代碼的可讀性和可組合性,使得代碼更加簡潔、靈活和易于維護。

2.鏈式調用實現

鏈式調用的主要實現方式,總共有以下 4 種:

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

具體實現如下。

2.1 Setter 原生方式

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

2.2 Lombok @Accessors 注解方式

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

2.3 Lombok @Builder 注解方式

使用 @Builder 注解,會自動生成一個 Builder 類,通過該 Builder 類可以鏈式地設置類的屬性并創建對象。這種方式在構建復雜對象時非常方便。

具體實現代碼如下:

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 工具類庫,通過靜態方法封裝,降低相關 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 類都可以實現鏈式調用。

責任編輯:武曉燕 來源: Java中文社群
相關推薦

2023-11-22 09:30:50

e簽寶面試企業面經

2025-05-20 08:00:00

鏈式調用異步

2009-07-01 14:37:14

JavaScript異

2023-01-18 10:35:49

MySQL數據庫

2012-03-13 11:21:34

索尼AndroidVita OS

2024-11-07 08:28:53

2021-09-13 20:38:47

Python鏈式調用

2021-03-12 21:19:15

Python鏈式調用

2022-11-15 07:50:47

ORM鏈式操作刪除

2022-11-11 07:48:56

ORM鏈式輪播圖

2009-07-01 14:31:01

JavaScript異

2021-06-27 21:06:47

開發循環依賴

2024-07-29 07:02:00

OpenAIGPT-4oAI

2018-07-20 09:16:04

鏈式存儲結構

2023-02-17 07:27:28

2020-05-06 10:10:51

Python代碼鏈式調用

2024-12-19 09:05:13

Python鏈式調用

2022-07-18 10:45:18

安全

2022-06-24 09:36:47

Python對象調用

2021-01-29 13:29:53

系統調用
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 人人草人人干 | 日本久久综合 | 成人小视频在线观看 | 欧美激情欧美激情在线五月 | 黄色av免费| 成人免费视频一区 | 一级一级毛片免费看 | 男人天堂国产 | 超碰操| 久综合| 日韩综合 | 国产a视频 | 欧美一级免费观看 | 国产欧美精品一区二区 | 国产网站在线播放 | 中文字幕一区二区三区精彩视频 | 日日日操 | 亚洲国产成人精品一区二区 | 96国产精品久久久久aⅴ四区 | 日日骚av | 一级大片网站 | 一区二区三区日韩 | 免费观看一级特黄欧美大片 | 天天草夜夜骑 | 午夜电影网 | 九九激情视频 | 色毛片 | 欧美三级三级三级爽爽爽 | 免费在线观看成年人视频 | 日本精品一区二区 | 日韩精品欧美精品 | 国产女人第一次做爰毛片 | 欧美精品一区三区 | 亚洲精品一区国语对白 | 日本一区二区三区四区 | 精品亚洲一区二区三区四区五区高 | 亚洲精品黄色 | 97av在线| 国产精品日产欧美久久久久 | 超黄毛片 | 中国一级毛片免费 |