Java8 Lamda表达式初体验

原创 2016年08月28日 15:43:15

Java8 Lamda表达式初体验

Lamda语法

标准语法

  • (Type1 param1, Type2 param2, …, TypeN paramN) -> (
    statment1;
    statment2;
    // …….
    stamentN;
    return something;

简化语法1

参数类型可以省略

lamda一般可以从上下文中推测推断参数类型,所以参数类型可以省略

  • (param1, param2, …, paramN) -> (
    statment1;
    statment2;
    // …….
    stamentN;
    return something;

简化语法2:当lamda表达式参数只有一个可以省略小括号

  • param -> (
    statment1;
    statment2;
    // …….
    stamentN;
    return something;

简化语法3:当lamda表达式只包含一条语句

可以省略大括号、return语句和分号

  • param1 -> statment

方法引用(Method reference)和构造器引用(Construct reference)

方法引用

  • objectName::instanceMethod
  • ClasssName::staticMethod
  • ClassName::instanceMethod

    前两种方式类似,等同于把lamda表达式的参数直接当作instanceMethod|staticMethod的参数来调用。
    例如:

System.out::printLn; // 等同于x -> System.out.println(x)
Math::max; // 等同于 (x,y) -> Math.max(x,y);

最后一种方式将第一个参数当作调用主体,其他参数当作方法的入参
例如:

String::toString; // 等同于 (x,y) -> x.toString(y);

构造器引用

  • 语法:ClassName::new

把lamda表达式的参数当作构造器的参数
例如

BigDecimal::new; //等同于x -> new BigDecimal(x)
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

【Java8】JDK8.0新特性—Lamda表达式

转自:http://blog.sina.com.cn/s/blog_4a157f470102v903.html

java8常用的函数,以及lamda表达式有非运行异常能否在外部捕获

Stream API中经常使用的函数式接口 函数式接口 参数类型 返回类型 描述 Supplier 无 T 提供一个T类型的值 Consumer T void...
  • kkgbn
  • kkgbn
  • 2017-07-12 23:57
  • 311

java8新特性-Lamda表达式

Lamda表达式属于函数式编程的概念,为甚需要函数式编程呢?如果想知道函数式编程产生的目的,那么我们可以且必须通过匿名内部类来分析。    public class TestClass { ...

java8新特性-Lamda表达式

Lamda表达式属于函数式编程的概念,为甚需要函数式编程呢?如果想知道函数式编程产生的目的,那么我们可以且必须通过匿名内部类来分析。  普通的匿名内部类如下: public class TestC...

JAVA8-用lamda表达式和增强版Comparator进行排序

以前的排序一般对象实现Comparable或者Comparator接口,经常是通过匿名类类实现。 可以参见以前的博文 Java 中 Comparable 和 Comparator 比较 现在看看使...

Java8初体验(一)lambda表达式语法

本文主要记录自己学习Java8的历程,方便大家一起探讨和自己的备忘。因为本人也是刚刚开始学习Java8,所以文中肯定有错误和理解偏差的地方,希望大家帮忙指出,我会持续修改和优化。本文是该系列的第一篇,...

Java8初体验(一)lambda表达式语法

本文主要记录自己学习Java8的历程,方便大家一起探讨和自己的备忘。因为本人也是刚刚开始学习Java8,所以文中肯定有错误和理解偏差的地方,希望大家帮忙指出,我会持续修改和优化。本文是该系列的第一篇,...
  • wauit
  • wauit
  • 2014-04-14 16:30
  • 525

Java8初体验(一)lambda表达式语法

转自http://ifeve.com/lambda/ 本文主要记录自己学习Java8的历程,方便大家一起探讨和自己的备忘。因为本人也是刚刚开始学习Java8,所以文中肯定有错误和理解偏差的地方,希望...

Java8初体验(一)lambda表达式语法

本文主要记录自己学习Java8的历程,方便大家一起探讨和自己的备忘。因为本人也是刚刚开始学习Java8,所以文中肯定有错误和理解偏差的地方,希望大家帮忙指出,我会持续修改和优化。本文是该系列的第一篇,...

java基础--内部类和Lamda表达式

内部类是在java内部又定义的内部类,它最大的优势在于,它可以访问外部类所有的数据成员,但外部类不能访问内部类的私有成员,使用最多的是匿名内部类。java 8根据匿名为简化匿名内部类的写作习惯,提出了...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)