Java8 Supplier 源码详解示例

1. 简介

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

2. 方法说明

2.1. get

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

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

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

3. 应用场景

3.1. 延迟获取实例

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

3.2. 无参的工厂方法

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

###更多笔记请关注公众号,不定期更新###
搜索关注公众号:服务端技术笔记整理

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值