Java8 Supplier 源码详解示例

1. 简介

       java8开始引入函数式编程,本文分析的就是该模块很常用的Supplier,顾名思义,该接口为声明一个供应商,用来获取指定泛型的实例,类似于工厂,执行该接口的获取实例方法(get)不支持接收参数。

2. 方法说明

2.1. get

      该方法是接口的核心方法,供应商通过该接口返回实例。该方法类似于工厂模型的创建实例的方法,调用方不需要知道工厂怎么定义,通过什么方法来获取实例。只需要调用该方法,就可以获取到供应商提供的实例;但是没法指定参数。示例如下:

Supplier ss = () -> "abc";
String str = ss.get();
Supplier> sh = () -> new HashMap<>();
Map map = sh.get();

该方法没有对每次调用的返回结果有限制,不需要每次返回的都是相同的实例。

3. 应用场景

3.1. 延迟获取实例

      该类提供了获取实例的方法,当某个业务需要指定的实例,但是并非需要实时的创建实例,就可以提供个该实例的Supplier,在需要的时候通过get来获取。

3.2. 无参的工厂方法

      工厂模式的另一种实现方式,简化工厂方法的封装(使用Lambda表达式: () -> expression; )。对于调用方,使用该工厂更加简洁方便,统一规范。

###更多笔记请关注公众号,不定期更新###

你可能感兴趣的:(Java8函数编程,java,编程语言)