- java.util.function.Supplier 接口仅包含一个无参的方法: T get() ,用来获取一个泛型参数指定类型的对象数据。
- 由于这是一个函数式接口,这也就意味着对应的Lambda表达式需要“对外提供”一个符合泛型类型的对象数据
@FunctionalInterfacepublic interface Supplier<T> {T get();}
Supplier与Optional类实现解决空指针问题
public class SupplierTool {public static <T> Optional<T> resolve(Supplier<T> resolver) {try {T result = resolver.get();return Optional.ofNullable(result);} catch (NullPointerException e) {// 可能会抛出空指针异常,直接返回一个空的 Optional 对象return Optional.empty();}}}
