-
Lambda表达式的语法####
(para1, para2...) -> { //实现代码块 }
其中:
- ( )中para1, para2是参数,是Lambda表达式的输入
- ->称为箭头符号
- { }中是Lambda表达式的方法体,称为
statement
- 只有一个参数时,( )可去掉
- 方法体只有一行语句时,{ }可去掉,并省略
return
,例如e -> System.out.println(e)
,称为expression
-
Lambda表达式可以作为函数式接口的实例###
例子:
先定义函数式接口
TestInterface
@FunctionalInterface
public Interface TestInterface {
public abstract void testMethod(String message);
}构建
TestInterface
接口的实例
public static void main(String[] args) {
TestInterface testInterface = (e) -> {
System.out.println(e + " word");//这里是testMethod方法的具体实现体
};
testInterface.testMethod("hello");
}从上面的代码可以看出,引用
testInterface
指向了由Lambda
表达式所创建的对象。所以,Lambda表达式是对象类型,而不是函数。Lambda
表达式中的参数e
的类型一定是方法testMethod(String message)
的参数类型String
。因为TestInterface
是函数式接口,其中必定只有一个抽象方法。