您的位置:首页 > 科技 > IT业 > 深圳品牌创意网站建设_每平每屋在线设计家官网_成都网站快速排名软件_活动营销案例100例

深圳品牌创意网站建设_每平每屋在线设计家官网_成都网站快速排名软件_活动营销案例100例

2024/12/21 19:46:25 来源:https://blog.csdn.net/weixin_42369079/article/details/144015204  浏览:    关键词:深圳品牌创意网站建设_每平每屋在线设计家官网_成都网站快速排名软件_活动营销案例100例
深圳品牌创意网站建设_每平每屋在线设计家官网_成都网站快速排名软件_活动营销案例100例

Lambda 是一个匿名函数, Lambda 表达式是一段可以传递的代码(将代码像数据一样进行传递)。

Lambda表达式其本质是函数式接口(只有一个抽象方法)的实例。
它是可传递的匿名函数的一种形式:它没有名称,但它有参数列表,函数主体,返回类型,可能还有一个可以抛出的异常列表。

Lambda 表达式基础语法:
Lambda 表达式:是Java 8 语言引入的一种新的语法,它是一个代码块,可以作为函数接口的实例。Java引入了一个新的操作符“->”, 该操作符被称为 Lambda 操作符或箭头操作符。箭头操作符将 Lambda 分成了两个部分:
①左侧:是 Lambda 表达式的参数列表。
②右侧:是 Lambda 表达式的代码块(函数体),是函数式接口中抽象方法的方法体。

Lambda 表达式的语法格式:

  • 格式一:无参数,无返回值的用法

    无参数,无返回值的用法 示例:() -> System.out.println(“我是一个线程的Lambda版本”);

	public void test1() {Runnable r = new Runnable() {@Overridepublic void run() {System.out.println("我是一个线程");}};r.run();Runnable r1 = () -> System.out.println("我是一个线程的Lambda版本");r1.run();}
  • 格式二:有一个参数,无返回值的用法: (x) -> System.out.println(x); 或者 x -> System.out.println(x); 一个参数,可以省略参数的小括号。
	public void test2(){String message = "消费者Consumer函数式接口,有一个输入参数,无返回值";Consumer<String> con = (x) -> System.out.println(x);con.accept(message);}
  • 格式三:有两个参数,有返回值的:(x, y) -> x + y
public void test3() {//作为函数接口的实例BinaryOperator<Integer> binary = (x, y) -> x + y;System.out.println(binary.apply(1, 2));  // 3}
  • 格式四:剩下的多个参数,就不在继续介绍了,按照上面的推测,就可以了,上面的例子,函数体中,都是一行语句,最后一个语法,介绍下,Lambda 表达式中,多行语句,分别在无返回值和有返回值的抽象类中的用法
public void test4() {// 无返回值lambda函数体中用法Runnable r1 = () -> {System.out.println("Lambda演示1");System.out.println("Lambda演示2");System.out.println("Lambda演示3");};r1.run();// 有返回值lambda函数体中用法BinaryOperator<Integer> binary = (x, y) -> {int a = x * 2;int b = y + 2;return a + b;};System.out.println(binary.apply(1, 2));// 6}
  • 其他的Lambda 表达式语法
    1,Lambda 表达式,若只需要一个参数时,参数的小括号可以省略。
    2,当 Lambda 函数体只有一条语句时,return 与大括号若有,都可以省略。
    3,Lambda 表达式参数的数据类型通常可以省略,因为大多可由编译器推断得出,称为“类型推断”。
	public void test5() {//直接使用Lambda 表达式,“类型推断”Integer sum = Arrays.asList(1, 3, 5, 2, 4).stream().reduce(0, (x, y) -> x + y);System.out.println("sum = "+ sum); //打印“sum = 15”}

可以看到,在Lambda 表达式中的参数列表,可以不用写参数的类型,称为“类型推断”。这与 java7中 new ArrayList<>(); 类似,<>棱形操作符不需要指定泛型类型,可根据上下文做类型的推断。

参考文档

Java Lambda 表达式详解

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com