Lamdba 表达式为什么出现

  Java8是自java延生以来最大的改变,他允许java中的方法和函数成为一等公民(可以在方法间传递),所以就应运而出现了Lamdba表达式,他可以将表达式传递给另一个方法,然后再进行操作。  我们其实可以把Lamdba表达式看作是匿名类的语法糖(简单写法),但是匿名类和Lamdba表达式的现实方式一点都不一样。

Lamdba 表达式的书写方式

  • 没有参数

    Runnable runnable = () -> System.out.println("没有参数,并且没有返回值");

  • 没参数,但是有返回值

    Supplier stringSupplier = () -> "没有参数,但是有返回值!";

  • 有参数,没有返回值

    Consumer consumer = (x) -> System.out.println("有参数,但没有返回值!" + x);

  • 有参数,有返回值

    Function<Integer, String> function = (x) -> x + "数字转换为字符串,返回回去";

上面的四种都是 -> 后面都只有一行,如果是多行的话,得把后的内容用{}括起来
如果是多行的情况下,有返回值,必须用,return 来返回值。
如果方法体只有一行的情况下,可以省略大括号,并且有返回值的,自动返回

Lamdba表达式的使用

  Lamdba表达式的使用主要结合函数式接口使用的,当然如果普通的只要有一个方法的接口也可以用Lamdba也可以用Lamdba来书写。以前的只有一个接口方法也可以用。
我在 java8 新特性 函数式接口用过lamdba表达式(有兴趣的可以去看一看)。
  Lamdba表达式是结合着函数式接口使用的。
  函数式接口是结合着Steam()流来使用的。
所以在后面写Steam流的时候再着重的说Lamdba表达式的使用。

细节决定成败!

个人愚见,如有不对,恳请扶正!

Java8 新特性 Lamdba表达式的更多相关文章

  1. Java8新特性-Lambda表达式是什么?

    目录 前言 匿名内部类 函数式接口 和 Lambda表达式语法 实现函数式接口并使用Lambda表达式: 所以Lambda表达式是什么? 实战应用 总结 前言 Java8新特性-Lambda表达式,好 ...

  2. 乐字节-Java8新特性-Lambda表达式

    上一篇文章我们了解了Java8新特性-接口默认方法,接下来我们聊一聊Java8新特性之Lambda表达式. Lambda表达式(也称为闭包),它允许我们将函数当成参数传递给某个方法,或者把代码本身当作 ...

  3. JAVA8新特性——Lamda表达式

    JAVA9都要出来了,JAVA8新特性都没搞清楚,是不是有点掉队哦~ Lamda表达式,读作λ表达式,它实质属于函数式编程的概念,要理解函数式编程的产生目的,就要先理解匿名内部类. 先来看看传统的匿名 ...

  4. java8新特性——Lambda表达式

    上文中简单介绍了一下java8得一些新特性,与优点,也是为本次学习java8新特性制定一个学习的方向,后面几篇会根据上文中得新特性一一展开学习.本文就从java8新特性中比较重要的Lambda表达式开 ...

  5. Java8 新特性_Lambda 表达式

    1. Java8新特性_简介 Lambda 表达式 函数式接口 方法引用与构造器引用 Stream API 接口中的默认方法与静态方法 新时间日期 API 减少空指针异常的容器 Optional 2. ...

  6. Java8新特性: lambda 表达式介绍

    一.lambda 表达式介绍 lambda 表达式是 Java 8 的一个新特性,可以取代大部分的匿名内部类,简化了匿名委托的使用,让你让代码更加简洁,优雅. 比较官方的定义是这样的: lambda ...

  7. Java8新特性 - Lambda表达式 - 基本知识

    A lambda expression is an unnamed block of code (or an unnamed function) with a list of formal param ...

  8. java8新特性-lambda表达式和stream API的简单使用

    一.为什么使用lambda Lambda 是一个 匿名函数,我们可以把 Lambda表达式理解为是 一段可以传递的代码(将代码像数据一样进行传递).可以写出更简洁.更灵活的代码.作为一种更紧凑的代码风 ...

  9. java8新特性1--Lambda表达式

    一.Lambda表达式是什么? Lambda表达式有两个特点 一是匿名函数,二是可传递. 匿名函数的应用场景是 通常是在需要一个函数,但是又不想费神去命名一个函数的场合下使用Lambda表达式.lam ...

随机推荐

  1. vue接入腾讯防水墙代码

    vue接入腾讯防水墙代码 开始创建代码: 登陆调用方法代码

  2. 字符串的sizeof长度及strlen长度

    在C/C++中,字符串是以零('\0')结尾的.比如,对于下面的字符串: "hello"  在最后一个字符'd'后面,还有一个我们肉眼看不见的'\0'字符,作为该字符串的结束符.所 ...

  3. druid获取不需要配置公钥私钥的密文,或者明文

    import com.alibaba.druid.filter.config.ConfigTools; /** * Created with IntelliJ IDEA on 2019/3/21. * ...

  4. Centos7 安装腾达U12驱动无线网卡

    解决过程: 办法一: CentOS7.3 默认的内核版本较低,为 3.10.0-514.el7.x86_64. 无论是使用腾达官方提供的驱动,还是github 上的驱动(链接 https://gith ...

  5. 内核中dump_stack的实现原理(3) —— 内核函数printk的实现

      参考内核文档: Documentation/printk-formats.txt   在内核中使用dump_stack的时候可以看到如下用法: static inline void print_i ...

  6. 使用docker创建mongodb

    1.创建 MongoDB 数据卷 docker volume create mongo_data_yapi 2.启动 MongoDB docker run -d --name mongo-yapi - ...

  7. shell之命令代换,将当前路径存放在变量中,然后使用变量

    重要的 命令代换`` 反引号 shell先执行该命令,然后将命令的结果存放在 变量中 例如 var=`pwd` echo $var 也可以用其$()替换 var=$(date) echo $var 删 ...

  8. HDU1754 && HDU1166 线段树模板题

    HDU1754 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1754 题目分析:对于给出的一个很长的区间,对其进行单点更新值和区间求最大值的操作,由于 ...

  9. css ie bug 双边距

  10. 【AICC】2019训练营笔记

    1.AI 人工的方法在机器上实现智能:机器学习.计算机视觉.规划决策.自然语言处理.认知推理.高效搜索 2.三大学派 符号主义 连接主义:CNN 行为主义 3.两条路线 结构模仿 功能模仿 4.AI芯 ...