公众号链接:https://mp.weixin.qq.com/s/MFXRBr16LuGn6G2rlOFFEw
简介
今天主要聊聊java中的lambda
距离我加入hutool-commiter已经有一段时间了,想起曾经封装过的一个类Opt,就是使用lambda,按照惯例,先介绍下dromara组织下的项目hutool

Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。
这个类Opt的灵感来源是对jdk内置的java.util.Optional的拓展,在一些细节方面进了了简化处理
下面主要是通过其介绍lambda的使用
快速上手
依靠idea编译器的提示进行快速上手
下方是判断user是否为空,不为空通过User#getSchool()获取学校名的操作
例如此处我写到这里
代码语言:javascript复制User user = new User();
// idea提示下方参数,如果没显示,光标放到括号里按ctrl p主动呼出
|Function<? super User,?> mapper|
Opt.ofNullable(user).map()这里idea为我们提示了参数类型,可这个Function我也不知道它是个什么
实际上,我们new一个就好了
Opt.ofNullable(user).map(new Fun)
|Function<User, Object>{...} (java.util.function) | <-戳我
|Func<P,R> cn.hutool.core.lang.func |这里idea提示了剩下的代码,我们选Function就行了,接下来如下:
Opt.ofNullable(user).map(new Function<User, Object>() {
})我们这里根据具体操作选取返回值
例如这里是想判断user是否为空,不为空时调用getSchool,从而获取其中的返回值String类型的school
我们就如下写法,将第二个泛型,也就是象征返回值的泛型改为String:
Opt.ofNullable(user).map(new Function<User, String>() {
})然后这里红线提示了,我们就使用idea的修复所有,默认快捷键alt 回车
Opt.ofNullable(user).map(new Function<User, String>() {
}) |


