Traditional style to Lambda style
suggest changeTraditional way
interface MathOperation{
boolean unaryOperation(int num);
}
public class LambdaTry {
public static void main(String[] args) {
MathOperation isEven = new MathOperation() {
@Override
public boolean unaryOperation(int num) {
return num%2 == 0;
}
};
System.out.println(isEven.unaryOperation(25));
System.out.println(isEven.unaryOperation(20));
}
}
Lambda style
- Remove class name and functional interface body.
public class LambdaTry {
public static void main(String[] args) {
MathOperation isEven = (int num) -> {
return num%2 == 0;
};
System.out.println(isEven.unaryOperation(25));
System.out.println(isEven.unaryOperation(20));
}
}
- Optional type declaration
MathOperation isEven = (num) -> {
return num%2 == 0;
};
- Optional parenthesis around parameter, if it is single parameter
MathOperation isEven = num -> {
return num%2 == 0;
};
- Optional curly braces, if there is only one line in function body
- Optional return keyword, if there is only one line in function body
MathOperation isEven = num -> num%2 == 0;
Found a mistake? Have a question or improvement idea?
Let me know.
Table Of Contents