How we declare a function in a class:
public void perform() {
System.out.println("hello");
}
Convert that to a Lambda Function
- public is not need outside of a class, so that is dropped.
- name of the function is replaced by the variable it is assigned to, so that is dropped.
- the compiler figures out the return type from the code, so that is dropped.
Which results in:
aBlockOfCode = () -> {
System.out.println("hello");
};
Where ( ) contains the arguments for the function.
If your function only contains 1 line you can remove the curly brackets:
aBlockOfCode = () -> System.out.println("hello");
If your function only contains 1 line you can remove the curly brackets:
Here is a lambda function using parameters.
doubleNumberFunction = (int a) -> return a*2;
For functions with only 1 line, we can drop the return statement and just have:
doubleNumberFunction = (int a) -> a*2;
More examples
addFunction = (int a, int b) -> a+b;
safeDivideFunction = (in a, int b) -> {
if(b==0) return 0;
return a/b;
};
If we want to assign a lambda function to a variable like we have above, we will need to create an interface that describes the lambda function. This interface can have only 1 method.
{
...
MyAdd addFunction = (int a, int b) -> a+b;
...
}
interface MyAdd{
int add(int a, int b);
}
References
| Reference | URL |
|---|---|
| Java 8 Lambda Basics 6 - Introducing Lambda Expressions | https://www.youtube.com/watch?v=nUIAvs4OEkM |