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