什么是Lambda 表达式

Lambda 表达式,也可称为闭包,它是Java 8 发布的最重要新特性。
Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中)。
使用 Lambda 表达式可以使代码变的更加简洁紧凑。

Lambda表达式的重要特征

  • 可选类型声明:不需要声明参数类型,编译器可以统一识别参数值
  • 可选的参数圆括号:一个参数无需定义圆括号,但多个参数需要定义圆括号
  • 可选的大括号:如果主体包含了一个语句,就不需要使用大括号
  • 可选的返回关键字:如果主体只有一个表达式返回值则编译器会自动返回值,大括号需要指定表达式返回了一个数值。

Lambda 表达式实例

public class TestLambda {//3、静态内部类static class Like2 implements ILike {@Overridepublic void lambda() {System.out.println("i like lambda2");}}public static void main(String[] args) {ILike like = new Like();like.lambda();like = new Like2();like.lambda();//4、局部内部类class Like3 implements ILike {@Overridepublic void lambda() {System.out.println("i like lambda3");}}like = new Like3();like.lambda();//5、匿名内部类,没有类的名称,bicultural借助接口或者父类like = new ILike() {@Overridepublic void lambda() {System.out.println("i like lambda4");}};like.lambda();//6、用lambda简化like = ()->{System.out.println("i like lambda5");};like.lambda();}}//1、定义一个函数式接口
interface ILike{void lambda();
}
//2、实现类
class Like implements ILike{@Overridepublic void lambda() {System.out.println("i like lambda");}
}

执行结果如下:

i like lambda
i like lambda2
i like lambda3
i like lambda4
i like lambda5

使用 Lambda 表达式需要注意:

  • lambda表达式只能有一行代码的情况下才能化简成为一行,如果有多行那么就用代码块包裹
  • 前提必须是函数式接口
  • 多个参数也可以去掉参数类型,要去掉都去掉

Java多线程:Lambda 表达式相关推荐

  1. Java的Lambda表达式实例

    Java的Lambda表达式实例 在JDK1.8之后添加了lambda表达式,允许把函数作为一个方法的参数,用于对程序的简化 语法格式如下: 格式:(参数列表)->{一些重写方法的代码} ()接 ...

  2. 10个Java 8 Lambda表达式经典示例

    Java 8 刚于几周前发布,日期是2014年3月18日,这次开创性的发布在Java社区引发了不少讨论,并让大家感到激动.特性之一便是随同发布的lambda表 达式,它将允许我们将行为传到函数里.在J ...

  3. Java 8 Lambda 表达式详解

    版权声明:本文由吴仙杰创作整理,转载请注明出处:https://segmentfault.com/a/1190000009186509 1. 引言 在 Java 8 以前,若我们想要把某些功能传递给某 ...

  4. Java 8 Lambda表达式-接口实现

    Java 8 Lambda表达式在只有一个方法的接口实现代码编写中,可以起到简化作用: (argument list) -> body 具体看Runnable接口的例子 public class ...

  5. 这是一个有趣的问题,Java 8 Lambda 表达式被编译成了什么?

    在了解了Java 8 Lambda的一些基本概念和应用后, 我们会有这样的一个问题: Lambda表达式被编译成了什么? 这是一个有趣的问题,涉及到JDK的具体的实现.本文将介绍OpenJDK对Lam ...

  6. Java 8 Lambda 表达式被编译成了什么?

    点击上方"朱小厮的博客",选择"设为星标" 后台回复"书",获取个gui 在了解了Java 8 Lambda的一些基本概念和应用后, 我们会 ...

  7. java 8 lambda表达式中的异常处理

    文章目录 简介 处理Unchecked Exception 处理checked Exception 总结 java 8 lambda表达式中的异常处理 简介 java 8中引入了lambda表达式,l ...

  8. 设计模式的Java 8 Lambda表达式–命令设计模式

    在本博客中,我将说明如何使用Java 8 Lambda表达式以函数式编程方式实现命令模式 . 命令模式的目的是将请求封装为对象,从而为具有不同请求,队列或日志请求的客户端参数化,并支持相应的操作. 命 ...

  9. Java 8 Lambda表达式的函数式编程– Monads

    什么是monad ?: monad是一种设计模式概念,用于大多数功能编程语言(如Lisp)或现代世界的Clojure或Scala中. (实际上,我会从scala复制一些内容.)现在,为什么它在Java ...

  10. 深入浅出 Java 8 Lambda 表达式

    摘要:此篇文章主要介绍 Java8 Lambda 表达式产生的背景和用法,以及 Lambda 表达式与匿名类的不同等.本文系 OneAPM 工程师编译整理. Java 是一流的面向对象语言,除了部分简 ...

最新文章

  1. tomcat启动出现闪退_(转)Tomcat 启动后 “闪退”
  2. hadoop 安全模式
  3. Perl中use、require的用法和区别
  4. WRC 2017最值得关注的专题论坛之一,与大咖探讨青年科学家的创新创业
  5. mysql 二叉树表设计_mysql---B+tree索引的设计原理
  6. cache failed module status_Flutter混编之路——iOS踩坑记录
  7. 百度新闻的索引机制(二):智能聚类
  8. 阿里文娱搜索排序算法实践和思考(附交流视频和PPT下载链接)
  9. Windows Server执行定时任务
  10. kali虚拟机配置成桥接模式
  11. char ch= 中 什么意思java_问一下java里的char到底是什么
  12. iled to read key AndroidDebugKey from store “D:\路经\.android\debug.keystore“: Invalid keystore format
  13. Animation和Animator的区别
  14. 虚拟主机做app服务器,虚拟主机做app服务器吗
  15. 4.15 最短路 题
  16. 【Python】Pandas 表格样式设置指南,看这一篇就够了!
  17. 我的web前端工作日志10------疫情过后
  18. 声网 Token 鉴权机制,以及常见的问题
  19. 芝士和奶酪一样吗_使用简单工厂设计模式就像制作芝士蛋糕一样
  20. 有趣的CSS实现“勾号”

热门文章

  1. 基于逆变器的有源滤波器控制,光伏Mppt采用粒子群算法,ip iq谐波检测,电压电流双闭环控制,电流环采样pi控制和重复控制进行对比,谐波含量低
  2. MRC误码率的matlab仿真
  3. bili—Excel零基础入门进阶到函数
  4. STM32F103ZE TFT液晶代码移植
  5. 2014-5-20 摇摇车现在已经是思杨的完美座驾了
  6. 写了一个iPhone越狱快捷下拉开关插件
  7. 用java设计实现一个简单的动作冒险类游戏
  8. 你知道Kafka和Redis的各自优缺点吗?一文带你优化选择,不走弯路
  9. 【MATLAB】将raw转为视频(avi格式、mp4格式)并输出(代码分享)
  10. OSChina 周二乱弹 —— 将娱乐进行到底