Hutool Hutool
(opens new window)
🏡首页
📖指南
🎢最佳实践
💖支持
💡javaDoc (opens new window)
⏳更新记录 (opens new window)
  • 🍎gitee (opens new window)
  • 🍏github (opens new window)
(opens new window)
🏡首页
📖指南
🎢最佳实践
💖支持
💡javaDoc (opens new window)
⏳更新记录 (opens new window)
  • 🍎gitee (opens new window)
  • 🍏github (opens new window)
  • 快速入门

  • 核心(hutool-core)

    • AI(Hutool-ai)

    • 注解(annotation)

    • 数组(array)

    • JavaBean(bean)

    • 缓存(cache)

    • 类加载器(classloader)

    • 编码解码(codec)

    • 集合(collection)

    • 比较器(comparator)

    • 压缩(compress)

    • 类型转换(convert)

    • 数据(data)

    • 日期时间(date)

    • 异常(exception)

    • 函数(func)

    • IO流(io)

    • 语言特性(lang)

      • 简介
      • 断言工具-Assert
      • 链式接口-Chain
        • 介绍
        • 主要功能
          • 1. 链式接口定义
          • 2. 链式接口的实现与使用
          • 3. 链式接口的优势
          • 4. 链式接口的应用场景
        • 适用场景
      • 控制台工具-Console
      • 控制台表格-ConsoleTable
      • 枚举项-EnumItem
      • 选项工具-Opt
      • 单例工具-Singleton
      • 验证工具-Validator
      • 版本工具-Version
    • Map(map)

    • 数字数学(math)

    • 网络(net)

    • 对象池(pool)

    • 反射(reflect)

    • 正则(regex)

    • 服务提供(spi)

    • 聚合操作(stream)

    • 字符串文本(text)

    • 并发和线程(thread)

    • 树结构(tree)

    • 工具集合(util)

    • XML操作(xml)

  • 定时任务(hutool-cron)

  • 加密(hutool-crypto)

  • 数据库(hutool-db)

  • 扩展(hutool-extra)

  • HTTP(hutool-http)

  • 日志(hutool-log)

  • 配置文件(hutool-setting)

  • JSON(hutool-json)

  • Office办公(hutool-poi)

  • 套接字(hutool-socket)

  • GUI(hutool-swing)

  • 指南
  • 核心(hutool-core)
  • 语言特性(lang)
Hutool
2026-01-03
目录

链式接口-Chain

# 介绍

Chain是Hutool中定义的一个链式接口,用于支持链式调用,简化代码编写,提高代码的可读性和流畅性。

# 主要功能

# 1. 链式接口定义

Chain接口是一个泛型接口,定义了一个chain()方法,用于返回当前对象本身,从而实现链式调用。

public interface Chain<T extends Chain<T>> {
    /**
     * 获得一个自身对象,用于链式调用
     *
     * @return 自身对象
     */
    @SuppressWarnings("unchecked")
    default T chain() {
        return (T) this;
    }
}

# 2. 链式接口的实现与使用

// 实现Chain接口
public class Person implements Chain<Person> {
    private String name;
    private int age;
    private String address;
    
    // 构造方法
    public Person() {
    }
    
    // setter方法,返回this实现链式调用
    public Person setName(String name) {
        this.name = name;
        return this;
    }
    
    public Person setAge(int age) {
        this.age = age;
        return this;
    }
    
    public Person setAddress(String address) {
        this.address = address;
        return this;
    }
    
    // getter方法
    public String getName() {
        return name;
    }
    
    public int getAge() {
        return age;
    }
    
    public String getAddress() {
        return address;
    }
}

// 使用链式调用
Person person = new Person()
    .setName("张三")
    .setAge(18)
    .setAddress("北京市");

// 使用chain()方法进行链式调用
Person person2 = new Person()
    .setName("李四")
    .chain().setAge(20)
    .chain().setAddress("上海市");

# 3. 链式接口的优势

  • 提高代码可读性:链式调用让代码更像自然语言,易于阅读和理解
  • 减少临时变量:无需创建多个临时变量来存储中间结果
  • 简化代码编写:减少了代码的冗余,使代码更加简洁
  • 提高开发效率:链式调用可以快速构建对象,减少了代码量

# 4. 链式接口的应用场景

  • 对象构建:用于构建复杂对象,如配置对象、实体对象等
  • 方法调用链:用于执行一系列相关的方法调用
  • 配置设置:用于设置对象的多个属性
  • 流式操作:用于实现类似Stream API的流式操作

# 适用场景

Chain接口适用于以下场景:

  • 需要频繁创建和配置对象时
  • 需要执行一系列相关方法调用时
  • 希望提高代码可读性和流畅性时
  • 希望减少临时变量和冗余代码时

通过实现Chain接口,可以让你的类支持链式调用,使代码更加简洁、易读和易用。

断言工具-Assert
控制台工具-Console

← 断言工具-Assert 控制台工具-Console→

Theme by Vdoing | Copyright © 2025-2026 Hutool | Apache-2.0
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式