java8新引进减少匿名实现类的代码量一种特别的语法
格式:
->的左边:接口中抽象方法的参数列表
->的右边:实现类中的方法体
Lambda的本质其实就是实现了函数接口(只有一个抽象函数的接口)
当接口中无参数时:省略了重写后的方法名
接口:
public interface Lam { void show(); }
测试:
Lam lam=()->{ System.out.println("空参"); }; lam.show();当接口中有一个参数时:
可以省略参数类型,但是参数不能省,包含参数的小括号也可以省略
接口:
public interface Cc { void show(String s); }
测试 1:
Cc cc1=v->{ System.out.println(v+",一个参数加大括号"); }; cc1.show("参数值");
测试2:
当方法体中代码只有一行时,可以省略
Cc cc2=v->System.out.println(v+",一个参数不加大括号"); cc2.show("参数值");当接口中有两个参数时:
参数类型可以省略,参数不可以省略,并且包含参数的小括号也不可以省略
接口:
public interface Bb { void show(int a,String b); }
测试类:
Bb bb=(c,d)->System.out.println(c+"与"+d+",形参为两个时,小括号不能忘"); bb.show(12,"张嘉");综上:
当方法体只有一行代码时,可以省略大括号参数类型可以省略只有一个参数时才可以省略小括号
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)