java8常用函数式接口

Function<T, R>

Function<T, R>(java.util.function.Function)函数式接口,T是参数类型,R是返回值类型。

R apply(T t):需实现抽象方法apply

Consumer<T>

Consumer<T>(java.util.function.Consumer)是消费者接口,接收一个参数,没有返回值,一般用于改变一些期望的状态或完成一个事件。

void accept(T t):需实现抽象方法accept

default Consumer<T> andThen(Consumer<? super T> after):默认方法,传入Consumer2到Consumer1的andThen,返回生成的Consumer3,这个Consumer3的accept方法是先执行Consumer1方法,再执行Consumer2方法。

Predicate<T>

Predicate<T>(java.util.function.Predicate)用于对一个事件进行判断

boolean test(T t):抽象方法test

supplier<T>

Supplier<T>(java.util.function.Supplier)是一个工厂接口,提供类型T的实例

T get():抽象方法,提供T的实例

Optional<T>

Optional类(java.util.Optional)是一个容器类,代表一个值存在或不存在,可以用来避免空指针异常。

Optional.of(T t):创建一个Optional实例

Optional.empty():创建一个空的Optional实例

Optional.ofNullable(T t):若t不为null,创建Optional实例,否则创建空实例

isPresent():判断是否包含值

orElse(T t):如果调用对象包含值,返回该值,否则返回t

orElseGet(Supplier s):如果调用对象包含值,返回该值,否则返回s获取的值

map(Function f):如果有值对其处理,并返回处理后的Optional,否则返回Optional.empty()

flatMap(Function mapper):与map类似,要求返回值必须是Optional

使用举例:这样可以通过Optional避免null校验。

Public static String getValue(Object object) {
    return Optional.ofNullable(object) // 创建Optional对象
                    .map(objectTemp -> objectTemp.value) // 执行function操作
                    .orElse("no object"); // 获取对象的值或返回no object

}

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值