函数式编程-Supplier 的使用

常用的函数式接口
java.util.function.Supplier<T>接口仅包含一个无参的方法:T get()。用来获取一个泛型参数指定类型的对象数据。
Supplier<T>接口被称之为生产型接口,指定接口的泛型是什么类型,那么接口中的get方法就会生产什么类型的数据。

package com.example.springstudy.test.supplier;

import java.util.function.Supplier;

/**
 * @Author: GuoDong
 * @Description:
 * @Date 2023-02-06 09:39:08
 * @Version 1.0
 **/
public class Demo01Supplier {

    /**
     * 定义一个方法,方法的参数传递Supplier<T>接口,泛型执行String,get方法就会返回一个String
     */
    public static String getString(Supplier<String> sup){
        return sup.get();
    }

    public static void main(String[] args) {
        //调用getString方法,方法的参数Supplier是一个函数式接口,所以可以传递Lambda表达式
        String s = getString(()->{
            //生产一个字符串,并返回
            return "胡歌";
        });
        System.out.println(s);

        //优化Lambda表达式
        String s2 = getString(()->"胡歌");
        System.out.println(s2);
    }

}

总结:
java.util.function.Supplier<T> 接口仅包含一个无参的方法: T get() 。用来获取一个泛型参数指定类型的对象数据。由于这是一个函数式接口,这也就意味着对应的Lambda表达式需要“对外提供”一个符合泛型类型的对象数据。或者简单说这个接口只有一个get的抽象类。传入一个泛型T,get方法,返回一个泛型T。

posted @ 2023-02-06 09:43  郭慕荣  阅读(127)  评论(0编辑  收藏  举报