Lambda表达式是一个匿名函数,它实现了一个称为功能接口的特定接口。 它也被称为单一抽象方法接口。

lambda表达式的语法 -

(parameters) -> function body;

具有零个,一个和多个参数的Lambda表达式。

() → System.out.println("Zero parameter");
(p) → System.out.println("One parameter p="+ p);
(a b c) → System.out.println("Multiple parameter a="+ a+" b="+b+" c="+c);

Lambda表达式在函数体中包含单个和多个语句。

//Single statement
(a b) -> System.out.println(a+b);

//Multiple statements
(a b) -> {
    int sum=a+b;
    System.out.println(sum);
}

Lambda表达式,从函数体返回一个值。

(a b) -> a+b;

// Using return keyword 
(a b) -> {
   int sum=a+b;
   return sum;
}

以下示例演示如何创建一个简单的java程序,该程序使用lambda表达式和匿名类来打印“Hello World”。

创建一个功能接口

文件:HelloLambda.java -

package com.yiibai.tutorial.lambda;

/**
 * @author yiibai
 */
public interface HelloLambda {
    void sayHello();
}

注 - 功能接口只有一个抽象方法。

在不使用Lambda表达式的情况下实现HelloLambda接口

文件:HelloLambdaTest.java -

package com.yiibai.tutorial.lambda;

/**
 * @author yiibai
 */
public class HelloLambdaTest {
    public static void main(String[] args) {

        //Anonymous Class
        HelloLambda helloLambda=new HelloLambda() {

            @Override
            public void sayHello() {
                System.out.println("Hello World");
            }
        };

        helloLambda.sayHello();
    }
}

在上面的示例中,我们使用匿名类实现了HelloLambda接口。

使用Lambda表达式实现HelloLambda接口
文件:HelloLambdaTest.java -

package com.yiibai.tutorial.lambda;

/**
 * @author yiibai
 */
public class HelloLambdaTest {
    public static void main(String[] args) {

        //Lambda Expression
        HelloLambda helloLambda=()->{System.out.println("Hello World");};

        helloLambda.sayHello();
    }
}

执行上面示例代码,得到以下结果:

Hello World