I know that -> is used for lambda expressions with the syntax ()->{}.
But I saw this code: file -> file.isFile() - with no () and {}. What does it do?
Thanks!
CodePudding user response:
() is not required when you have a single argument and {} is not required when your lambda body is a single expression.
See the Java tutorial for further information and the Java Specification for a more formal description of the syntax.
CodePudding user response:
As Federico answered, for the single arguments you do not need () and for the statements only return a value and do not do anything else, you do not need {}.
The addition I wanna make to his contribution:
The code you put means,
There is a function, that takes file as a parameter. Then, returns its .isFile().
In other words, you can also reach the same aim by defining a method:
<private/protected/public> boolean myLovelyMethod(File file){
return file.isFile();
}
Lambda function just makes it a little bit shorter. If you are not going to re-use the method, may be better to use lambda.
