理解Java8中的Lambda表达式

 java8中新增加了许多特性。其中就包含lambda表达式。本文通过具体的实例来说明其用法。

 
假设我们要调用Printer类中的print方法,一种可能的实现方式如下:

在上面的方法中,我们通过Print类实现了IPrint接口。
当然我们还可以通过匿名类的形式去实现。
现在我们有了第三种实现方式,就是lambda表达式。

lambda表达式有多种形式,上面我们列举了三种。
lambda表达式的形式如下:
(参数列表)->{函数实现}。
 
那什么形式的接口我们能用lambda表达式实现呢?Lambda是一种SAM(single abstract method)类型,即适用于单一抽象方法的接口。在上面的例子中,IPrint接口包含一个抽象的方法doPrint,因此我们可以用lambda表达式去实现。
 
类似IPrint,我们称这类的接口叫函数接口,可以用@FunctionalInterface来标注。如果向@FunctionalInterface标注的接口中添加额外的抽象方法,系统会报错(如果是来自java.lang.Object的抽象方法是正确的)。
 
 
 
 
此条目发表在JAVA分类目录,贴了标签。将固定链接加入收藏夹。

发表评论

电子邮件地址不会被公开。