只具有一个方法的普通接口可以被转换为Lambda表达式。
语法:{参数1,参数2...}->{...}
(1)没有参数时使用Lambda表达式 ()->{...}
(2)带参数时使用Lambda表达式 (int a)->{...}
(3)代码中只一句代码使用Lambda表达式 ()->System.out.println(a);
(4)代码中有多句代码时使用Lambda表达式 (int a,int b)->{System.out.println(a);System.out.println(a*b);}
(5)有返回值的代码块 (int a,int b)->{System.out.println(a);System.out.println(a*b); return a;}
(6)参数中使用final关键字 (final String a)->System.out.println(a);
demo如下:
public class tet { public static void main(String[] args){ //System.out.println(4&10);//相当于10%(4+1) //代码中只一句代码使用Lambda表达式 /* IEat iEat3 = ()-> System.out.println("代码中只一句代码使用Lambda表达式"); iEat3.eat();*/ //没有参数时使用Lambda表达式 /* IEat iEat3 = ()-> {System.out.println("没有参数时使用Lambda表达式 ");}; iEat3.eat();*/ //带参数时使用Lambda表达式 /* IEat iEat3 = (int a)-> {System.out.println("带参数时使用Lambda表达式 "+a);}; iEat3.eat(5);*/ //代码中有多句代码时使用Lambda表达式 /*IEat iEat3 = (int a)-> {System.out.println("代码中有多句代码时使用Lambda表达式"+a);System.out.println("代码中有多句代码时使用Lambda表达式"+a);}; iEat3.eat(5);*/ //有返回值的代码块 /* IEat iEat3 = (int a)-> {System.out.println("有返回值的代码块"+a); return a;}; iEat3.eat(5);*/ //参数中使用final关键字 IEat iEat3 = (final int a)-> {System.out.println("参数中使用final关键字"+a); return a;}; iEat3.eat(5); } interface IEat{ public int eat(final int a); } class IEatImpl implements IEat{ public int eat(final int a){ System.out.println("eat bnana"); //System.out.println("eat apple"); return a; } } }
原文:https://www.cnblogs.com/wenbiquan/p/11069669.html