本篇参考Richard Warburton的 java8 Lambdas :Functional Programming for the Masses

学习lambda表达式之前,需要知道什么是函数式编程。

函数式编程不尽相同,但是其核心是,使用不可变的值和函数,函数对一个值进行处理,映射返回成另一个值的过程。

示例1:

hangmeimei.speech(new speak(){

  public void speechs(Parameter parameter){

    System.out.println("演讲");

  }

})

上面的代码核心就是韩梅梅演讲说了一句话,但是因为内部内的样板看起来很是繁琐

使用lambda表达式:hangmeimei.speech(parameter ->System.out.println("演讲"));

parameter与上面的参数名称一样。在使用内部内时候,我们需要显示的将参数的类型写出来,而使用lambda表达式则可以省略参数的类型Parameter。

这是因为javac更具程序的上下文,也就是方法的签名在后台推出了参数parameter的类型Parameter。

尽管与之前相比,lambda表达式中的参数需要的样板代码很少,但是Java8依然是静态类型语言。为了怎加可读性并且迁就我们的习惯,声明参数的时候也可以包括类型的信息,而且有时编译器不一定能根据上下文推出参数的类型!

lambda 表达式除了基本形式之外,还有一下几种变体。

1、Runable noA =()->System.out.println("演讲");

上式中所示的lambda表达式没有参数,使用空()表示没有参数。该lambda表达式实现了Runable接口,该接口也只有一个run方法,且run没有参数,返回类型是void。

2、Dog noA=event ->System.out.println("演讲");

该lambda表达式含有一个参数,可以省略括号。

3、Runable noA()->{

System.out.println("演讲");

System.out.println("演讲");

}

如上所示,lambda表达式的主体不仅可以是一个表达式,也可以是一个代码块。使用大括号括起来。

4、Round add=(x,y)->x+y;

lambda表达式也可以包含多个参数,这个代码不是把两个数相加,而是创建了加法函数,用来计算两个数相加的结果。

Java8 新特性lambda表达式(一)初始的更多相关文章

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

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

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

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

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

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

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

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

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

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

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

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

  7. Java8新特性——Lambda 表达式

    Lambda 表达式 ​ ​ ​ ​ ​ ​ ​ ​ Lambda 表达式的实质属于函数式编程. ​ ​ ​ ​ ​ ​ ​ ​ 语法格式为:(parameters) -> expression ...

  8. Java8新特性-Lambda表达式

    1.  什么是Lambda表达式? Lambda表达式就是可以把函数作为参数传递,或者说把代码作为数据传递给函数. 2. Lambda表达式的语法格式 基本语法格式如下: 基本语法下多个变体的说明: ...

  9. Java8新特性——lambda表达式.(案例:词频统计)

    需求:读入一个文本文件,确定所有单词的使用频率并从高到低排序,打印出所有单词及其频率的排序列表 先用传统方法解: package cn._1.wordfrequency; import java.ut ...

随机推荐

  1. P1227 【[JSOI2008]完美的对称】

    这道题,先讲一下我的做题思路 这道题的最主要的目的就是算出中心,我下面称为中点.这个中点其实很好算的,我们只需要算出最左下角的坐标和最右上角的坐标,然后用中点坐标公式算出来就ok了,那么这道题就做完了 ...

  2. python os库的使用方法 + 自动化安装第三方库脚本

    一.os库基本介绍 os库提供通用的.基本的操作系统交互功能,包括windows.Mac os.linux os库是python标准库,包含几百个函数 常用路径操作.进程管理.环境参数等几类 路径操作 ...

  3. Python3 高级编程技巧(部分)

    目录: 在列表.字典.集合中筛选数据 为元组元素命名 通过列表.元组创建字典 字典排序 寻找字典的公共键 让字典保持有序 生成器函数 yield协程 同时遍历值与下标 在列表.字典.集合中筛选数据 很 ...

  4. CRMEB小程序商城首页强制在微信中打开解决办法

    先说一下,这也算不上二开,小小修改一下而已. CRMEB安装完成后,PC端直接打开首页,真是一言难尽~ 然后,我就想了,用手机浏览器或者PC浏览器直接打开首页也没啥用,干脆直接强制在微信中打开算了! ...

  5. tars 问题汇总

    1. 节点 ip地址变了如何解决.后台不可以改. 2. [ok] 服务如何在本地运行../HelloGo --config.conf

  6. 【原】通过Jenkin传值进Android代码

    1) Jenkin中用-Pxxxx = yyyy来传值进gradle 2) 在AndroidManifest.xml中定义占位符: <meta-data android:name="X ...

  7. Oracle RAC与DG

    RAC RAC: real application clustersrac RAC: real application clustersrac 单节点数据库:数据文件和示例文件一一对应 实例损坏时数据 ...

  8. 为什么一个还没毕业的大学生能够把 IO 讲的这么好?

    Java IO 是一个庞大的知识体系,很多人学着学着就会学懵了,包括我在内也是如此,所以本文将会从 Java 的 BIO 开始,一步一步深入学习,引出 JDK1.4 之后出现的 NIO 技术,对比 N ...

  9. C#操作Excel开发报表系列整理

    C#操作Excel进行报表开发系列共写了八篇,也已经有很久没有新东西了,现在整理一下,方便以后查阅,如果有写新的,会同时更新.需要注意的是因为Office的版本不同,实际的代码可能会有所不同,但是都是 ...

  10. 用于测试 JsonAnalyzer2 1.01版的测试用例

    14. 原文={"animal":"ca,t","color":"ora:nge","isMale" ...