javaSE.四大函数式接口
函数式接口就是JDK1.8专门为我们提供好的用于Lambda表达式的接口,这些接口都可以直接使用Lambada表达式。
Supplier供给型函数接口
这个接口式专门用于供给使用的,其中只有一个get方法用于获取需要的对象。👇
函数式接口都会打上这样一个注解👇
我们要实现一个专门供给给Student对象Supplier,就可以使用:👇
可简写为lambda表达式👇
方法引用👇
Consumer消费函数式接口:
这个接口专门用于消费某个对象的。
这个方法就是用于消费的,没有返回值👇
这个方法便于我们连续使用此消费接口👇
Objects.requireNonNull(after) 判空👇
👇 先执行 accept(t); 然后执行after.accept(t).
👇andthen
消费扩展andthen功能,实现accept,会实现两次不同的消费
Function函数型函数式接口
这个接口消费一个对象,然后会向外供给一个对象(前两个的融合体)
apply方法👉将Integer转换为String 👇
compose👇
compose相当于中间处理环节 :将String 转换为 Integer
将从apply获取字符串,然后通过 s.length() 转为 数字5, 然后变为 Integer转换为String
andthen👇
最终加工处理环节, 与compose刚好相反,compose是中间处理环节
将当前实现的返回值进行进一步的处理,得到其他类型的值
在andthen中,将获取的10(Integer) 转为字符串, andthen接收获取的字符串 判空得到最终答案Boolean
identity 👇
将传入参数原样返回的实现
Predicate断言型函数式接口
接收一个参数,然后进行自定义判断并返回一个boolean结果
test👇
组合条件判断and👇
or👇至少满足一个
negate👇
isEqual👇
判断两个对象是否相等