【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: 执行结果

相关推荐
懂得节能嘛.7 小时前
【SDK开发实践】从Java编码到阿里云制品仓库部署
java·阿里云·maven
wavemap7 小时前
先到先得:免费订阅一年ChatGPT Go会员
开发语言·chatgpt·golang
空空kkk7 小时前
SpringMVC——异常
java·前端·javascript
重整旗鼓~8 小时前
1.大模型使用
java·语言模型·langchain
m***D2868 小时前
JavaScript在Node.js中的内存管理
开发语言·javascript·node.js
我叫张小白。8 小时前
JavaScript现代语法梳理:ES6+核心特性详解
开发语言·javascript·typescript·es6
sino爱学习8 小时前
FastUtil 高性能集合最佳实践:让你的 Java 程序真正“快”起来
java·后端
.豆鲨包8 小时前
【Android】 View事件分发机制源码分析
android·java
-森屿安年-8 小时前
LeetCode 283. 移动零
开发语言·c++·算法·leetcode
寻找华年的锦瑟8 小时前
Qt-FFmpeg案例(0基础,包含环境配置)
开发语言·qt·ffmpeg