How to use a return statement in lambda expression in Java?

Java 8Object Oriented ProgrammingProgramming

A return statement is not an expression in a lambda expression. We must enclose statements in braces ({}). However, we do not have to enclose a void method invocation in braces. The return type of a method in which lambda expression used in a return statement must be a functional interface.

Example 1

public class LambdaReturnTest1 {
   interface Addition {
      int add(int a, int b);
   }
   public static Addition getAddition() {
      return (a, b) -> a + b;    // lambda expression return statement
   }
   public static void main(String args[]) {
      System.out.println("The addition of a and b is: " + getAddition().add(20, 50));
   }
}

Output

The addition of a and b is: 70


Example 2

public class LambdaReturnTest2 {
   public static void main(String args[]) {
      Thread th = new Thread(getRunnable());
      th.run();
   }
   public static Runnable getRunnable() {
      return() -> {    // lambda expression return statement
         System.out.println("Lambda Expression Return Statement");
      };
   }
}

Output

Lambda Expression Return Statement
raja
Published on 18-Dec-2019 13:27:27
Advertisements