Java8 Lamda表达式初体验

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)
阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chuanben/article/details/52346129
文章标签: java lamda
个人分类: java
想对作者说点什么? 我来说一句

Java8 新特性探究.pdf

2017年11月27日 1.35MB 下载

没有更多推荐了,返回首页

不良信息举报

Java8 Lamda表达式初体验

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭