最基本的 Lambda 表达式,它由三部分组成具体格式是这样子的:参数 -> 具体实现;
Lambda表达式格式:()->{}
是一段带有输入参数的可执行语句块。
Lambda 表达式有这么几个特点:
可选类型声明: 不需要声明参数类型,编译器可以自动识别参数类型和参数值。
可选的参数圆括号: 一个参数可以不用定义圆括号,但多个参数需要定义圆括号;
可选的大括号: 如果函数主体只包含一个语句,就不需要使用大括号;
可选的返回关键字: 如果主体只有一个表达式返回值则编译器会自动返回值,大括号需要指明表达式返回了一个数值。
()->代码块
代码实例
//接口类
public interface LambdaInterface01 {public void lambdaInterface01();
}
//测试类
public class LambdaExample01 implements LambdaInterface01 {public static void main(String[] args) {LambdaInterface01 example = () ->System.out.println("不包含参数,执行啦");example.lambdaInterface01();}@Overridepublic void lambdaInterface01() {}
}
结果截图:
(一个参数)->代码块
我们可以把 () 省略。
//接口类
public interface LambdaInterface02 {public int lambdaInterface02(int num);
}
//测试类
public class LambdaExample02 implements LambdaInterface02 {public static void main(String[] args) {LambdaInterface02 example = (int num) ->System.out.println("传入的数据为" + num);example.lambdaInterface02(3);}@Overridepublic void lambdaInterface02(int num) {}}
结果截图:
(参数1,参数2,……)->代码块
使用 () 把参数包裹起来,并用 , 来分割参数。上面的代码表示
//接口类
public interface LambdaInterface03 {public int lambdaInterface03(int x, int y,int z);
}
//测试类
public class LambdaExample03 implements LambdaInterface03 {public static void main(String[] args) {LambdaInterface03 example = (int x, int y, int z) -> System.out.println("三个数字之和为"+ (x+y+z));example.lambdaInterface03(10,9,8);}@Overridepublic void lambdaInterface03(int x, int y, int z) {}
}
结果截图:
带有{},{}里面是代码块
//接口类
public interface LambdaInterface04 {public void lambdaInterface04(String str);
}
//测试类
public class LambdaExample04 implements LambdaInterface04 {public static void main(String[] args) {LambdaInterface04 example = (String str)->{if (str.isEmpty()){System.out.println("字符串为空");}else {System.out.println("字符串的内容为"+str);}};example.lambdaInterface04("哈喽,我是演示带有代码块的字符串");}@Overridepublic void lambdaInterface04(String str) {}
}
结果截图:
参数不被声明类型
举例:
ActionListener oneArguments = event -> System.out.println("hello world");
Lambda 表达式的基本语法就基本是这样子了,简单记录一下,不仅可以这样写,还可以返回参数什么的,暂时先写这些吧,以后会找时间记录一下的。
Lambda表示式其实都是为了简化接口实例化的代码。
灵活使用吧,掌握这些知识可以帮助我们快速的辨别一个 Lambda 表达式,方便的去理解程序的意图。
上一篇:高项 沟通管理论文