当前位置:首页 > 科技  > 软件

被问住了:如何实现链式调用?

来源: 责编: 时间:2023-12-14 16:37:20 297观看
导读从 Java 8 开始,便引入了一种称为“流式 API”的编程风格,当然也被称为“链式设置”或“链式调用”。它主要是通过设置方法的返回值,让返回值变为对象自身,从而实现连续的方法调用,这种风格就叫做“链式设置”或“链式调用

从 Java 8 开始,便引入了一种称为“流式 API”的编程风格,当然也被称为“链式设置”或“链式调用”。它主要是通过设置方法的返回值,让返回值变为对象自身,从而实现连续的方法调用,这种风格就叫做“链式设置”或“链式调用”。HNa28资讯网——每日最新资讯28at.com

例如,以下代码:HNa28资讯网——每日最新资讯28at.com

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

其属性的设置就称为链式调用或链式设置。HNa28资讯网——每日最新资讯28at.com

1.链式调用优点

使用链式调用主要有以下几个优点:HNa28资讯网——每日最新资讯28at.com

  1. 简洁性:链式设置使得代码更加简洁和易读。通过连续的方法调用,可以在一行代码中完成多个操作,减少了代码的冗余和嵌套。
  2. 可读性:链式设置可以提供更清晰、更自然的代码流。每个方法调用都可以形成一个语义上的整体,使得代码更易于理解。
  3. 可组合性:链式设置可以方便地组合多个操作。每个方法返回的是对象自身或包含对象自身的容器,使得可以连续地进行多个操作,从而实现更复杂的功能。
  4. 可扩展性:链式设置使得添加、修改或移除操作更加灵活。由于每个方法都是在对象自身上操作,并返回对象自身或包含对象自身的容器,可以轻松地添加新的操作或修改现有的操作。

总的来说,链式设置提高了代码的可读性和可组合性,使得代码更加简洁、灵活和易于维护。HNa28资讯网——每日最新资讯28at.com

2.链式调用实现

链式调用的主要实现方式,总共有以下 4 种:HNa28资讯网——每日最新资讯28at.com

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

具体实现如下。HNa28资讯网——每日最新资讯28at.com

2.1 Setter 原生方式

Setter 原生方式的实现比较简单,只需要设置 Setter 方法,并且每个 Setter 方法都返回自身对象即可,如下代码所示:HNa28资讯网——每日最新资讯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;    }}

链式调用代码如下:HNa28资讯网——每日最新资讯28at.com

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

2.2 Lombok @Accessors 注解方式

Lombok 是一个 Java 库,它通过注解来简化 Java 代码的编写。其中,@Accessors 注解可以开启链式调用风格。HNa28资讯网——每日最新资讯28at.com

具体实现代码如下:HNa28资讯网——每日最新资讯28at.com

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

在上面的示例中,使用了 @Accessors(chain = true) 注解来开启链式调用风格。这样就可以通过以下方式进行链式设置:HNa28资讯网——每日最新资讯28at.com

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

2.3 Lombok @Builder 注解方式

使用 @Builder 注解,会自动生成一个 Builder 类,通过该 Builder 类可以链式地设置类的属性并创建对象。这种方式在构建复杂对象时非常方便。HNa28资讯网——每日最新资讯28at.com

具体实现代码如下:HNa28资讯网——每日最新资讯28at.com

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

链式调用代码如下:HNa28资讯网——每日最新资讯28at.com

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

2.4 Hutool GenericBuilder 方式

Hutool 是一个小而全的 Java 工具类库,通过静态方法封装,降低相关 API 的学习成本,提高工作效率,使 Java 拥有函数式语言般的优雅,让 Java 语言也可以“甜甜的”。其中,Hutool 提供了 GenericBuilder 类,可以实现链式调用,具体实现代码如下:HNa28资讯网——每日最新资讯28at.com

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

小结

使用链式调用(也叫做链式设置)提高了代码的可读性和可组合性,使得代码更加简洁、灵活和易于维护。而链式调用的常用实现方式有:原生 Setter 方式、Lombok 的 @Accessors 注解或 @Builder 注解实现方式,或者使用 Hutool 工具中提供的 GenericBuilder 类都可以实现链式调用。HNa28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-45481-0.html被问住了:如何实现链式调用?

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 深度解读:Spring Boot启动流程解析与应用实战

下一篇: Python中Del语句,你真的了解了吗

标签:
  • 热门焦点
  • 红魔电竞平板评测:大屏幕硬实力

    前言:三年的疫情因为要上网课的原因激活了平板市场,如今网课的时代已经过去,大家的生活都恢复到了正轨,这也就意味着,真正考验平板电脑生存的环境来了。也就是面对着这种残酷的
  • 小米降噪蓝牙耳机Necklace分享:听一首歌 读懂一个故事

    在今天下午的小米Civi 2新品发布会上,小米还带来了一款新的降噪蓝牙耳机Necklace,我们也在发布结束的第一时间给大家带来这款耳机的简单分享。现在大家能见到最多的蓝牙耳机
  • Automa-通过连接块来自动化你的浏览器

    1、前言通过浏览器插件可实现自动化脚本的录制与编写,具有代表性的工具就是:Selenium IDE、Katalon Recorder,对于简单的业务来说可快速实现自动化的上手工作。Selenium IDEKat
  • 服务存储设计模式:Cache-Aside模式

    Cache-Aside模式一种常用的缓存方式,通常是把数据从主存储加载到KV缓存中,加速后续的访问。在存在重复度的场景,Cache-Aside可以提升服务性能,降低底层存储的压力,缺点是缓存和底
  • 学习JavaScript的10个理由...

    作者 | Simplilearn编译 | 王瑞平当你决心学习一门语言的时候,很难选择到底应该学习哪一门,常用的语言有Python、Java、JavaScript、C/CPP、PHP、Swift、C#、Ruby、Objective-
  • 破圈是B站头上的紧箍咒

    来源 | 光子星球撰文 | 吴坤谚编辑 | 吴先之每年的暑期档都少不了瞄准追剧女孩们的古偶剧集,2021年有优酷的《山河令》,2022年有爱奇艺的《苍兰诀》,今年却轮到小破站抓住了追
  • 2299元起!iQOO Pad明晚首销:性能最强天玑平板

    5月23日,iQOO如期举行了新品发布会,除了首发安卓最强旗舰处理器的iQOO Neo8系列新机外,还在发布会上推出了旗下首款平板电脑——iQOO Pad,其最大的卖点
  • 2299元起!iQOO Pad开启预售:性能最强天玑平板

    5月23日,iQOO如期举行了新品发布会,除了首发安卓最强旗舰处理器的iQOO Neo8系列新机外,还在发布会上推出了旗下首款平板电脑——iQOO Pad,其搭载了天玑
  • 华为举行春季智慧办公新品发布会 首次推出电子墨水屏平板

    北京时间2月27日晚,华为在巴塞罗那举行春季智慧办公新品发布会,在海外市场推出之前已经在中国市场上市的笔记本、平板、激光打印机等办公产品,并首次推出搭载
Top