lambda小技巧

2022-08-21 11:22:04 浏览数 (1)

经常有朋友问我,老是遇到参数为一些lambda的函数,我怎么知道对应的lambda怎么写呢?

这函数式编程,真是一件美事啊~

对于这种情况,我们依靠我们强大的idea即可

例如此处我写到这里写不会了

代码语言:javascript复制
User user = new User();
// idea提示下方参数,如果没显示,光标放到括号里按ctrl p主动呼出            
         |Function<? super User,?> mapper|
Opt.ofNullable(user).map()

这里idea为我们提示了参数类型,可这个Function我也不知道它是个什么

实际上,我们new一个就好了

代码语言:javascript复制
Opt.ofNullable(user).map(new Fun)
                            |Function<User, Object>{...} (java.util.function)   |  <-戳我
                            |Func<P,R> cn.hutool.core.lang.func                 |

这里idea提示了剩下的代码,我们选Function就行了,接下来如下:

代码语言:javascript复制
Opt.ofNullable(user).map(new Function<User, Object>() {
})

此处开始编译报错了,不要着急,我们这里根据具体操作选取返回值

例如我这里是想判断user是否为空,不为空时调用getSchool,从而获取其中的返回值String类型的school

我们就如下写法,将第二个泛型,也就是象征返回值的泛型改为String

代码语言:javascript复制
Opt.ofNullable(user).map(new Function<User, String>() {
})

然后我们使用idea的修复所有,默认快捷键alt 回车

代码语言:javascript复制
Opt.ofNullable(user).map(new Function<User, String>() {
})                                                | 


	

0 人点赞