原文地址:
从JDK8开始java支持函数式编程,JDK也提供了几个常用的函数式接口,这篇主要介绍Supplier接口。
文本介绍的顺序依次为:- 源码介绍
- 使用示例
- 扩展类介绍
源码介绍
package java.util.function;/** * 供应商函数,每次调用get()方法返回一个T类型对象 */@FunctionalInterfacepublic interface Supplier{ /** * Gets a result. * * @return a result */ T get();}
下面来看一下具体的使用方法。
使用示例
package jdk8.function;import java.util.UUID;import java.util.function.Supplier;public class SupplierDemo { public static void main(String[] args) { Supplieruuid = () -> UUID.randomUUID().toString(); Supplier timestamp = () -> System.currentTimeMillis() + ""; SupplierDemo supplierDemo = new SupplierDemo(); System.out.println("uuid-sessionId : " + supplierDemo.sessionId(uuid)); System.out.println("timestamp-sessionId : " + supplierDemo.sessionId(timestamp)); } /** * 可自义的session_id生成器 * @param supplier * @return */ public String sessionId(Supplier supplier){ return supplier.get(); }}
下面是输出结果:
uuid-sessionId : 9893eca1-a3c0-49a0-abb2-f4e8dbb0aa38timestamp-sessionId : 1535698167233
Predicate扩展接口
类名 | 描述 |
BooleanSupplier | 提供了生产boolean型返回值功能 |
DoubleSupplier | 提供了生产double型返回值功能 |
IntSupplier | 提供了生产int型返回值功能 |
LongSupplier | 提供了生产long型返回值功能 |