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 Lambda表达式教程

Java8新特性,Lambda表达式与集合类bulk operation教程。迄今为止最全面的中文原创java lambda表达式教程。...
  • ioriogami
  • ioriogami
  • 2013年10月16日 16:08
  • 141428

Java8 Lambda表达式 ,此时不用,更待何时?

为什么要使用lambda表达式关于这点,网上的说法一大堆,但是这个就说一个最浅显的理由,就是简洁,使用Lambda表达式可以让你的代码看起来很简洁,去掉了一堆没有意义的代码,只留下核心的逻辑。也许你会...
  • u011002668
  • u011002668
  • 2016年10月31日 18:02
  • 972

JAVA8之lambda表达式详解,及stream中的lambda使用

1.什么是lambda表达式? 2.lambda表达式用来干什么的? 3.lambda表达式的优缺点? 4.lambda表达式的使用场景? 5.lambda只是有个语法糖吗? 6.stream...
  • jinzhencs
  • jinzhencs
  • 2016年02月26日 11:03
  • 22546

java8 Lambda表达式的学习与测试

java lambda表达式
  • BabyGoodMorning
  • BabyGoodMorning
  • 2016年09月14日 00:31
  • 811

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

java8的安装 工欲善其器必先利其器,首先安装JDK8。过程省略,大家应该都可以自己搞定。但是有一点这里强调一下(Windows系统):目前我们工作的版本一般是java 6或者java 7,所以很...
  • youzhouliu
  • youzhouliu
  • 2016年07月04日 12:42
  • 1211

java8之Lambda表达式 4:MapReduce开发案例

Stream接口提供的完整的数据流的批处理操作; 前提:Lambda表达式上(函数式接口)...
  • qq_27575627
  • qq_27575627
  • 2015年04月30日 17:16
  • 485

Java8新特性——Lambda表达式(一)

1. 预备知识在了解Lambda表达式之前首先需要了解以下预备知识。1.1 如何成为一名高级码农?如果老板让你写一个用于毁灭地球的函数,而你写了一个毁灭行星的函数,若要毁灭地球只需将毁灭地球的过程传递...
  • u010425776
  • u010425776
  • 2016年08月27日 11:49
  • 3608

C++ lamda表达式

简要介绍了c++中的lamda表达式和其用法
  • vinson0526
  • vinson0526
  • 2016年03月23日 13:56
  • 3022

Java8之——Lambda表达式入门

转载自:http://blog.csdn.net/renfufei/article/details/24600507/ 原文链接: Start Using Java Lambda Express...
  • l1028386804
  • l1028386804
  • 2016年09月22日 04:48
  • 1095

Java8初体验(二)Stream语法详解

1. Stream初体验 我们先来看看Java里面是怎么定义Stream的: A sequence of elements supporting sequential and para...
  • z742182637
  • z742182637
  • 2017年03月24日 09:39
  • 214
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java8 Lamda表达式初体验
举报原因:
原因补充:

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