【JDK 8-函数式编程】4.4 Supplier

[一、Supplier 接口](#一、Supplier 接口)

二、实战

[Stage 1: 创建 Student 类](#Stage 1: 创建 Student 类)

[Stage 2: 创建方法](#Stage 2: 创建方法)

[Stage 3: 调用方法](#Stage 3: 调用方法)

[Stage 4: 执行结果](#Stage 4: 执行结果)


一、Supplier 接口

  • 供给型 接口: 无入参,有返回值(T : 出参类型)

  • 调用方法: T get();

  • 用途: 如 无参的工厂方法,即工厂设计模式创建对象,简单来说就是 提供者

java 复制代码
/**
 * * @param <T> the type of results supplied by this supplier
 */
@FunctionalInterface
public interface Supplier<T> {
    T get();
}

二、实战

Stage 1: 创建 Student 类

java 复制代码
public class Student {
    private String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

Stage 2: 创建方法

java 复制代码
    public static Student newStudent() {
        Supplier<Student> supplier = () -> {
            Student student = new Student();
            student.setName("默认名称");
            return student;
        };
        return supplier.get();
    }

Stage 3: 调用方法

java 复制代码
    public static void main(String[] args) {

        Student student = newStudent();
        log.info(student.getName());
    }

Stage 4: 执行结果

相关推荐
fpcc6 小时前
跟我学C++中级篇—内存流
开发语言·c++
Cicada1286 小时前
ccvt:一个用 Rust 写的中国地图坐标系互转命令行工具
开发语言·后端·rust
1001101_QIA6 小时前
工控机网络配置
开发语言·数据库·php
空谷有来人6 小时前
Ubuntu22.04安装jdk17,配置环境变量
java·jdk
程序员雷欧7 小时前
ThreadPoolExecutor 深度解析:从核心参数到源码实现的全面剖析
java·开发语言·jvm
catchadmin7 小时前
对标 npx 的 CPX PHP 的 Composer 包执行器
开发语言·php·composer
谢尔登7 小时前
分享一些我常用的Skill
java·人工智能·python·actionscript
一位狮子座的程序员7 小时前
如何用RAG解决AI智能体的知识盲区?
开发语言·c#
AaronJonah7 小时前
企业级线程池 traceId 闭环:上下文传递与全链路追踪实战
java·线程池·traceid跨线程传递