经常有朋友问我,老是遇到参数为一些lambda
的函数,我怎么知道对应的lambda
怎么写呢?
这函数式编程,真是一件美事啊~
对于这种情况,我们依靠我们强大的idea
即可
例如此处我写到这里写不会了
代码语言: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>() {
}) |