Java Lambda表达式全解析
1. Lambda表达式基础
Lambda表达式定义的方法没有名称。例如:
() -> Math.random() * 100
这个Lambda表达式从 Math.random()
获取一个伪随机值,将其乘以100并返回结果,它不需要参数。
当Lambda表达式需要参数时,参数会在Lambda运算符左侧的参数列表中指定,例如:
(n) -> (n % 2)==0
这个Lambda表达式在参数 n
的值为偶数时返回 true
。虽然可以显式指定参数的类型,但很多情况下其类型可以被推断出来。
2. 函数式接口
函数式接口是只指定一个抽象方法的接口。在JDK 8之前,接口方法默认是抽象的,但从JDK 8开始,可以为接口中声明的方法指定默认行为,即默认方法。现在,只有未指定默认实现的接口方法才是抽象的。
示例函数式接口:
interface MyNumber {
double getValue();
}
MyNumber
是一个函数式接口,其功能由 getValue()
方法定义。
L