Java -> 运算符
Java -> operator
我知道 ->
用于语法为 ()->{}
.
的 lambda 表达式
但我看到了这段代码:file -> file.isFile()
- 没有 ()
和 {}
。它有什么作用?
当您只有一个参数时,()
不是必需的,而当您的 lambda 主体是单个表达式时,{}
不是必需的。
有关语法的更正式说明,请参阅 the Java tutorial for further information and the Java Specification。
正如 Federico 回答的那样,对于 单个参数 你不需要 ()
而对于 语句只需要 return 一个值 并且不要做任何其他事情,你不需要 {}
.
我想对他的贡献做的补充:
你输入的代码意味着,有一个函数,将文件作为参数。然后,return是它的 .isFile()
。
换句话说,你也可以通过定义一个方法来达到同样的目的:
<private/protected/public> boolean myLovelyMethod(File file){
return file.isFile();
}
Lambda 函数只是让它更短了一点。如果您不打算使用 re-use 方法,使用 lambda 可能会更好。
我知道 ->
用于语法为 ()->{}
.
但我看到了这段代码:file -> file.isFile()
- 没有 ()
和 {}
。它有什么作用?
()
不是必需的,而当您的 lambda 主体是单个表达式时,{}
不是必需的。
有关语法的更正式说明,请参阅 the Java tutorial for further information and the Java Specification。
正如 Federico 回答的那样,对于 单个参数 你不需要 ()
而对于 语句只需要 return 一个值 并且不要做任何其他事情,你不需要 {}
.
我想对他的贡献做的补充:
你输入的代码意味着,有一个函数,将文件作为参数。然后,return是它的 .isFile()
。
换句话说,你也可以通过定义一个方法来达到同样的目的:
<private/protected/public> boolean myLovelyMethod(File file){
return file.isFile();
}
Lambda 函数只是让它更短了一点。如果您不打算使用 re-use 方法,使用 lambda 可能会更好。