前言

在其他语言中,函数式编程是很常见的,java8中为了支持函数式编程,新增了lambada表达式。lambada表达式其实是匿名内部类和闭包的一种符号表示,至于概念性的问题,大家不必深究,lambada表达式会用就可以了。

1.为何需要lambada表达式

在js中,函数的参数是另一个函数,返回值也是一个函数的情况是根常见的,因此js也是一门典型的函数式语言。而在java8以前的版本中,我们是无法将函数作为参数传递给一个方法的,也无法声明返回值是一个函数的方法,但是这种需求是存在的,java中,匿名内部类实际上就是在一个方法的参数位置声明一个匿名的内部类,这种代码结构的核心代码就几句,但是结构代码却比较长,是比较冗余的,如果用lambada表达式来实现这这种代码结构,是非常简洁的,并且可读性也比较强,所以java8中提供了lambada表达式

2.如何使用lambada表达式

lamba表达式的符号表示为 ->,其基本结构形式为:(param1,param2,param3…)-> { }

如果只有一个参数,可以不加小括号,只有一行执行代码,也可以没有箭头后面的大括号,比如 i ->System.Out.Println(i);

如果没有参数 ,只需要一个小括号即可,比如:()-> System.Out.Println(“hello”);

下面代码示例:

public class LambadaExample {public static void main(String[] args) {//不使用lamba表达式new Thread(new Runnable() {@Overridepublic void run() {System.out.println("hello,I am lambada");}}).start();//使用lambada表达式new Thread(() -> System.out.println("hello,I am lambada")).start();//lambada的执行代码有多行new Thread( () -> {try {TimeUnit.SECONDS.sleep(5);System.out.println("I am also lambada");} catch (InterruptedException e) {e.printStackTrace();}}).start();//有参数的lambada表达式Consumer<Integer> consumer = (i) -> System.out.println(i);consumer.accept(666);}
}

lambada表达式介绍相关推荐

  1. 2.cocos2dx 3.2中语法的不同之处,lambada表达式的使用和function和bind函数的使用

    1        打开建好的T32  Cocos2dx-3.2的一个项目 2        设置Cocos显示窗口的位置是在AppDelegate.cpp中: 3  设置自适应窗口大小的代码是在上面的 ...

  2. lambada表达式

     lambda表达式 //C++ 11中的Lambda表达式用于定义并创建匿名的函数对象,以简化编程工作.Lambda的语法形式如下: //[函数对象参数](操作符重载函数参数)mutable或e ...

  3. Lambada表达式的用法

    Lambada表达式是JDK1.8中最重要的新功能之一.使用Lambada表达式可以替代只有一个抽象函数的接口实现,告别匿名内部类.代码看起来更简洁易懂.Lambada表达式同时还提升了对集合.框架的 ...

  4. Lambada表达式常用案例(技能题)

    一:Lambada表达式的结构 1)Lambada表达式的结构我们可以看成三部分 () -> {},箭头左边是参数,右边是执行体,箭头是格式 二:使用案例(List为主的操作) 1)实体对象 @ ...

  5. JDK1.8之Lambada表达式一

    一. lambada表达式简介 我们知道对于Java变量可以赋给其一个值,而如果想将"一块代码(一个完整的方法)"赋给一个Java变量,如下所示,怎么做呢? 你可能认为就是下面的方 ...

  6. lambada表达式总结

    前言 作为jdk1.8的新特性,8的标准库都开始大量使用lambda表达式了,你有什么理由不去学习lambda,这么简洁,这么爽的一种编程方法,不学不觉得可惜吗? lambda即λ,是匿名函数的意思, ...

  7. Python(十)lambada表达式

    一.Lambda 表达式 概念:是一个匿名函数,Lambda表达式基于数学中的λ演算得名,直接对应于其中的lambda抽象(lambda abstraction),是一个匿名函数,即没有函数名的函数. ...

  8. 第十节 Java工具包-Collections 流--lambada表达式

     collection为核心的接口,包含了多种不同类型的集合以及多种不同数据结构的实现的类 list  set queue都是在collection接口下的所以都有.add()方法 package c ...

  9. lambada表达式理解

    lambada表达式是替换匿名内部类的函数式接口实现类 函数式接口 只有一个抽象方法的接口(可以有默认方法和静态方法),通常带有@FunctionalInterface注解 常用函数式接口 Predi ...

最新文章

  1. 20岁的谷歌,和它“最成功”的大败笔
  2. [JS]视频总结-第三部分_深入javascript
  3. Unity 新手入门 如何理解协程 IEnumerator yield
  4. 2018年我国视频监控市场趋势:智能视频分析进入规模化
  5. MTK 驱动(4)---MTK Android Driver知识大全
  6. 基于JAVA+SpringBoot+Mybatis+MYSQL的旅游网站系统
  7. 苹果发布无人车安全报告,内容竟只有7页?
  8. Linux下安装Python3.6(可用)
  9. Clear Float
  10. 单片机c语言fft函数,单片机ADC采样FFT计算试验
  11. 软件工程师和程序员到底有多大的区别?
  12. STM32串口中断接收
  13. 网吧会员管理系统c语言,常用的网吧会员管理系统哪个比较好|纳客软件
  14. linux上的smartsvn图形客户端,linux 下svn图形客户端smartsvn 安装
  15. 腾讯信鸽-百亿级别的消息推送背后的技术了解下
  16. 描写火车站场景_描写火车站人多的场景_描写火车站人多的作文
  17. gateway统一网关
  18. 用上这个神器后,广告从此去无忧!(全平台免费支持,无需安装任何客户端软件)...
  19. Appium+python自动化(三十八) - Appium自动化测试框架综合实践 - 框架简介-助你冲击高薪,迎娶白富美(超详解)...
  20. 【北亚数据恢复】误操作分区损坏导致SqlServer数据库数据丢失的数据恢复案例

热门文章

  1. 985计算机英语六级,大学英语六级比四级难多少?985学长含泪告诉你!
  2. MBA-day26 数的概念与性质
  3. Android 获得app的应用签名
  4. xp如何配置信息服务器地址,xp如何配置信息服务器地址
  5. 数学分析-证明:单调有界数列必有极限
  6. 实习生到公司第一天应该怎么快速上手
  7. 算法【二叉树】学习笔记 - 已知结点数计算可构建出多少种二叉树
  8. C语言中预编译/预处理的使用
  9. class torch.optim.lr_scheduler.LambdaLR
  10. 计算机一级ms必考知识点,计算机一级MsOffice考试知识点整理重点.docx