lambda表达式主要用于处理功能接口,这类接口类里只有一个抽象方法
接口类 名字= (参数)->{方法体};
一般的用法:
interface Ilove{ void like(int a,int b); } Ilove love;//一种接口的多态 love = (a, b) -> { // lambda表达式是重写接口里抽象方法的一种简便写法,=后面表示让该接口实现后的对象给接口变量接收 System.out.println(a); System.out.println(b); }; love.like(45,50);
同时使用lambda表达式相当与是一种对匿名内部类(当然该类肯定也是一个功能接口)的一中简便写法
如下代码:调用.forEach();方法使用匿名内部类构建一个传入该方法中的参数对象,实现aa这个集合中元素的输出
aa.forEach(new Consumer<String>() { //传入方法中的参数是一个类 @Override public void accept(String s) { System.out.println(s); } });
如下代码:使用lambda表达式的简便写法
aa.forEach((s)-> System.out.println(s));//相当实现一个匿名内部类传入方法中
实现Runnable接口的线程代码示例
//使用lambda表达式来实现Runnable()接口类并调用其中的run方法 new Thread(()->{ for(int i=0;i<20;i++){ for(int j=0;j<i+1;j++) System.out.print("R"); System.out.println();} }).start();