package com.xiaoaxiao.test.LambdaTest;
/**
* Created by xiaoaxiao on 2019/7/10
* Description: 当Lambda表达式只有一行代码且没有返回值时
*/
interface IInterface1{
void test();
}
public class OneLineCode {
public static void main(String[] args) {
IInterface1 interface1 = ()-> System.out.println("hello world");
interface1.test();
}
}
当方法有返回值时,单行代码的lambda表达式可以省略return语句。
package com.xiaoaxiao.test.LambdaTest;
/**
* Created by xiaoaxiao on 2019/7/10
* Description: 当Lambda表达式只有一行代码并且存在返回值时
*/
interface IInterface2{
int test(int a,int b);
}
public class OneLineCodeReturn {
public static void main(String[] args) {
IInterface2 iInterface2 = (p1,p2)->p1+p2;
System.out.println(iInterface2.test(10,20));
}
}
2、方法体有多行代码时
(方法参数) -> {
…
…
[return 语句];
};
return语句不可省略。
package com.xiaoaxiao.test.LambdaTest;
/**
* Created by xiaoaxiao on 2019/7/10
* Description: 当Lambda表达式有多行代码时
*/
interface IInterface3{
int test(int a,int b);
}
public class ManyLineCode {
public static void main(String[] args) {
IInterface3 interface3 = (p1,p2)->{
int ret = p1+p2;
ret += 10;
return ret;
};
System.out.println(interface3.test(10,20));
}
}