java supplier接口

发布时间 2023-09-13 09:55:26作者: hasome

参考:https://blog.csdn.net/m0_61366135/article/details/130557475

函数式接口概述

  • 有且仅有一个抽象方法的接口
  • Java中的函数式编程体现就是Lambda表达式
  • 所以函数式接口即可以适用于Lambda使用的接口

supplier

  • Java 中的 Supplier 接口是一个函数式接口,它不需要任何参数输入,只负责输出一个结果
  • T get():获得结果
  • 该方法不需要参数,它会按照某种实现逻辑(由Lambda表达式实现)返回一个数据。
  • Supplier接口也称为生产型接口,如果我们指定了接口的泛型是什么类型,那么接口中的get方法就会生产什么类型的数据供我们使用

使用

//定义
Supplier<String> supplier = () -> "hello, world";
//使用
String result = supplier.get();
System.out.println(result);

应用场景

延迟计算

Supplier<LocalDateTime> currentTime = () -> LocalDateTime.now();  
LocalDateTime now = currentTime.get(); // 计算当前时间

生成随机数

Supplier<Double> randomDouble = () -> Math.random(); 
double d = randomDouble.get(); // 产生一个随机数