Java
Java从JDK8开始支持lambda表达式,它可以取代部分匿名内部类的编写。
Java中的lambda表达式依赖于接口,并且要求接口只能有一个未实现的方法。
例如,接口
java.lang.Runnable
只有一个未实现的方法run()
,可以用lambda表达式,而接口java.lang.Clonable
没有未实现的方法,因此不能用lambda表达式。
由于Java的lambda表达式从匿名内部类演化而来,因此它依然可以访问作用域内final
(或实际效果为final
)的变量(但依然不可修改)。
语法
通用语法:(方法参数) -> { 方法体 }
- 对于单参数方法,可以省掉括号。多个参数应用逗号隔开。
- 方法体只有一条语句时,可以没有大括号。当方法体只有
return
语句时,可以只写后面的表达式,省去return
关键字。
Runnable run = () ->