美文网首页
JDK8 Lambda表达式和函数式接口

JDK8 Lambda表达式和函数式接口

作者: sickle4j | 来源:发表于2018-08-07 14:52 被阅读0次

简介:

    Lambda表达式(也称为闭包)是Java 8中最大和最令人期待的语言改变。它允许我们将函数当成参数传递给某个方法,或者把代码本身当作数据处理:函数式开发者非常熟悉这些概念。很多JVM平台上的语言(Groovy、Scala等)从诞生之日就支持Lambda表达式,但是Java开发者没有选择,只能使用匿名内部类代替Lambda表达式。

    Lambda的设计耗费了很多时间和很大的社区力量,最终找到一种折中的实现方案,可以实现简洁而紧凑的语言结构。最简单的Lambda表达式可由逗号分隔的参数列表、->符号和语句块组成

例子:

 Arrays.asList("a", "b", "c", "d").forEach(u ->System.out.println(u));

1.上面的例子中u的类型是编译器自动推断,当然也可以自己手动指定。比如:

    Arrays.asList("a", "b", "c", "d").forEach((String u)->System.out.println(u));

2.如果Lambda表达式需要更复杂的语句块,则可以使用花括号将该语句块括起来,类似于Java中的函数体,例如:

Arrays.asList("a","b","c").forEach((String e) -> {

System.out.println(e);

System.out.println(e);

});

3Lambda表达式可以引用类成员和局部变量(会将这些变量隐式得转换成final),例如下列两个代码块的效果完全相同:

String name=",";

final String name2=",,";

Arrays.asList("a","b","c").forEach((String e) -> {

System.out.println(e+name);

System.out.println(e+name2);

});

4Lambda表达式有返回值,返回值的类型也由编译器推理得出。如果Lambda表达式中的语句块只有一行,则可以不用使用return语句,下列两个代码片段效果相同:

Arrays.asList("a","b","c").sort((e1,e2)->e1.compareTo(e2));

Arrays.asList( "a", "b", "d" ).sort( ( e1, e2 ) -> {

int result = e1.compareTo( e2 );

return result;

} );

相关文章

  • JDK8新特性 - 函数式编程

    一、JDK8之自定义函数式编程 1.使用Lambda表达式,自定义lambda接口编程 定义⼀个函数式接口 需要标...

  • Lambda表达式

    Lambda表达式与函数式接口紧密相关,函数式接口介绍 Lambda表达式的基本语法 Java Lambda表达式...

  • JDK8接口规范-静态、默认方法

    JDK8接口规范 在JDK8中引入了lambda表达式,出现了函数式接口的概念,为了在扩展接口时保持向前兼容性(比...

  • 《Java 8实战》学习总结

    Java 8新特性概览 Lambda表达式 流 默认方法 Lambda表达式 Lambda和函数式接口Java 8...

  • JDK8新特性 内置函数式接口

    1. 内置函数式接口由来 lambda表达式的前提是需要有函数式接口。而且lambda表达式使用时不关心接口名,抽...

  • 2019-01-24 JDK1.8新特性NO:01

    Default 默认 函数式接口 Lambda表达式

  • Java8实战之-Lambda

    应该在什么地方使用Lambda表达式 你可以在函数式的接口上使用Lambda表达式。什么是函数式接口?接口只定义了...

  • Java 接口知识点

    接口的特性 函数式接口 抽象类和接口区别 Lambda表达式 java常用接口

  • Lambda表达式总结

    Lambda表达式总结使用范例以及例子Lambda表达式基础语法函数式接口Lambda练习Java8四大内置函数式...

  • Java8新特性

    1.Lamda表达式 Lambda表达式的作用主要是用来简化接口的创建,使用Lambda表达式接口必须是函数式接口...

网友评论

      本文标题:JDK8 Lambda表达式和函数式接口

      本文链接:https://www.haomeiwen.com/subject/hyxavftx.html