当前位置: 代码网 > it编程>编程语言>Java > Java链式调用实战指南(4种实现方式详解)

Java链式调用实战指南(4种实现方式详解)

2025年12月17日 Java 我要评论
例如,以下代码:mysqlconnectoptions connectoptions = new mysqlconnectoptions() .setport(3306) .sethost

例如,以下代码:

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链式调用实战:4种实现方式详解的文章就介绍到这了,更多相关java链式调用内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com