Java 中的 Supplier
接口是一个函数式接口,它不需要任何参数输入,只负责输出一个结果。下面是 Supplier
接口的基本用法:
-
定义接口对象:
Supplier<String> supplier = () -> "hello, world";
这个示例代码定义了一个
Supplier
接口对象,它不接受任何参数,返回一个字符串类型的结果。 -
使用接口对象:
String result = supplier.get(); System.out.println(result);
在这个示例代码中,我们通过调用
get()
方法来获取Supplier
接口对象的结果。由于Supplier
接口只有一个输出参数,因此调用get()
方法时不需要传递任何参数。在这个示例代码中,输出结果为hello, world
。
Supplier
接口通常用于延迟计算或生成随机数据等场景,也可以和其它函数式接口一起使用,例如 Function
、Optional
等。下面是几个示例:
-
延迟计算:
Supplier<LocalDateTime> currentTime = () -> LocalDateTime.now(); LocalDateTime now = currentTime.get(); // 计算当前时间
这个示例代码通过
Supplier
接口表示一个延迟计算的操作,直到我们调用get()
方法才会真正执行计算过程。 -
随机数生成:
Supplier<Double> randomDouble = () -> Math.random(); double d = randomDouble.get(); // 产生一个随机数
这个示例代码通过
Supplier
接口表示一个随机数生成的操作,调用get()
方法时将返回一个随机的双精度浮点数。 -
和其它函数式接口一起使用:
Optional<String> optional = Optional.ofNullable("hello"); String orElseGet = optional.orElseGet(() -> "world");
这个示例代码结合了
Optional
和Supplier
两个函数式接口,如果optional
对象为null
,则通过Supplier
接口返回一个默认值"world"
。这种方式可以使代码更加简洁和可读。