lambda是java8的新特性
支持将代码块作为方法的参数,使用更加简洁的代码来创建一个函数式接口的实例,所谓函数式接口就是只有一个方法的接口。
可以认为lambda表达式是创建匿名内部类的简化版。
public class Main { public static void main(String[] args) { // write your code here //局部类 class Ilike3 implements like{ @Override public void like() { System.out.println("i like qinjie"); } } l=new Ilike3(); l.like(); //匿名内部类,new一个接口或父类 like p=new like(){ @Override public void like() { System.out.println("i like qinjie"); } }; p.like(); } interface like{ void like(); }
使用lambda表达式,简化匿名类,前提条件是那个接口是函数式接口,也就是只有一个方法的接口
如果方法只包含一个语句,就不需要写大括号
使用格式:(参数)->语句; 此时只能有一条语句
(参数)->{语句块}; 可以有多条语句
可以不需要申明参数类型
public static void main(String[] args) { //使用lambda表达式,简化匿名类,前提条件是那个接口是函数式接口,也就是只有一个方法的接口 // like p2=(参数)->System.out.println("i like qinjie");如果方法只包含一个语句,就不需要写大括号{} like p2=()->System.out.println("i like qinjie"); p2.like(); like p3=()->{ System.out.println("i like qinjie"); System.out.println("i like qinjie"); }; p3.like(); }
public static void main(String[] args) { like p2=(a)->System.out.println("i like qinjie"+a); p2.like(5); like p3=(int a)->{ System.out.println("i like qinjie"+a); System.out.println("i like qinjie"+a); }; p3.like(6); } } interface like{ void like(int a); } }
运行结果: