Lamda语法(学习笔记)
Lamda语法
基本
λ 希腊字母表中排序第十一位的字母,英语名称为 Lamda
避免匿名内部类定义过多
可以让你的代码看起来很简洁
去掉了一堆没有意义的代码,留下核心的逻辑
其实质属于函数式编程的概念
(params)-> expression[表达式] (params) -> statement[语句] (params) -> {statements}
理解Functional interface(函数式接口)是学习java8 lamda表达式的关键所在。
函数式接口的定义:
任何接口,如果只包含唯一一个抽象方法,那么它就是一个函数式接口。
对于函数式接口,我们可以通过lamda表达式来创建该接口的对象
代码推导
/*** 推导lamda表达式*/ //定义一个函数式接口 interface IPerson{void person(); } interface IMan{void man(String name); } //定义一个实现类 class PersonFirst implements IPerson{ @Overridepublic void person() {System.out.println("I am a Firstperson");} } public class Lamda {//静态内部类static class PersonSecond implements IPerson{ @Overridepublic void person() {System.out.println("I am a Secondperson");}}public static void main(String[] args) {IPerson person = new PersonFirst();person.person(); person = new PersonSecond();person.person();//局部内部类class PersonThird implements IPerson{ @Overridepublic void person() {System.out.println("I am a Thirdperson");}} person = new PersonThird();person.person();//匿名内部类 没有类的名称 借助接口或父类person = new IPerson() {@Overridepublic void person() {System.out.println("I am a Forthperson");}};person.person(); //用Lamda简化(无参数)person = ()->{System.out.println("I am a Fifthperson");};person.person(); //用lamda简化(有参数) // IMan man = (String name)->{ // System.out.println(name); // }; // man.man("z");//简化参数类型 // IMan man = (name)->{ // System.out.println(name); // }; // man.man("z");//简化括号 // IMan man = name->{ // System.out.println(name); // }; // man.man("z");//简化{} 代码有多行无法省略{}IMan man = name->System.out.println(name);man.man("z"); } }
Lamda语法(学习笔记)相关推荐
- Python基础语法学习笔记
Python基础语法学习笔记 想淘宝省钱看我简介,博客www.liangxin.name (一) 一.Print()函数 1.数字可以直接输出,无需加引号 只能理解数字,却读不懂文字.因为数字和数学运 ...
- MySQL语法学习笔记
MySQL语法学习笔记 学习之道,非尽心竭力者不能进也!我是小七黛,欢迎查看我的笔记,有问题欢迎交流探讨. SQL是一种结构查询语言,用于查询关系数据库的标准语言,包括若干关键字和一致的语法,便于数据 ...
- Verilog HDL 语法学习笔记
今天给大侠带来Verilog HDL 语法学习笔记,话不多说,上货. 关于详细的VHDL语法以及Verilog HDL语法可参见往期文章. 一周掌握 FPGA VHDL Day 7 暨汇总篇 一周掌握 ...
- VHDL语法学习笔记:一文掌握VHDL语法
今天给大侠带来FPGA 之 VHDL 语法学习笔记,话不多说,上货. VHDL语法学习笔记 一.VHDL简介 1.1 VHDL 的历史 VHDL 的 英 文 全 名 是 Very-High-Speed ...
- web阶段概念语法----学习笔记
web学习笔记大纲 一.Oracle数据库 1.概念 2.sql命令(增删改查) 1)select命令 2)insert命令 3)update命令 4)delete命令 3.函数--- oracle提 ...
- javacode基本概念语法--学习笔记
javacode学习笔记大纲 一.语法规范 二.键盘输入 三.数据类型分类及类型转换 四.局部变量.switch-case.随机数 五.函数 六.数组 1.基础概念 2.数组扩容及排序 3.保留小数( ...
- 二、Vue基础语法学习笔记——事件监听v-on、条件判断(v-if、v-else-if、v-else、v-show)、循环遍历(v-for遍历数组对象,key属性、检测数组更新)、图书案例、双向绑定
四.事件监听 在前端开发中,我们需要经常和用于交互. 这个时候,我们就必须监听用户发生的时间,比如点击.拖拽.键盘事件等等 在Vue中如何监听事件呢?使用v-on指令 v-on介绍 作用:绑定事件监听 ...
- 一、Vue基础语法学习笔记系列——插值操作(Mustache语法、v-once、v-html、v-text、v-pre、v-cloak)、绑定属性v-bind(绑定class、style)、计算属性
一.插值操作 1. Mustache 如何将data中的文本数据,插入到HTML中呢? 我们已经学习过了,可以通过Mustache语法(也就是双大括号). Mustache: 胡子/胡须. 我们可以像 ...
- Swift基础语法学习笔记(1)
Swift基础语法的学习 1.HashMap 2.for-in循环控制 3.??聚合运算 4.SwiftUI的一些小技巧 5.init初始化器 6.@propertyWrapper属性包装器 音乐评分 ...
- pyton基础语法学习笔记一
一.pyton语言简介 1.解释型语言 2.交互式语言 3.面向对象 4.适合初学者 二.pyton语言特点 1.易于学习: 2.易于阅读: 3.易于维护: 4.一个广泛的标准库: 5.互动模式: 6 ...
最新文章
- Redis的一些“锁”事
- docker高级应用之赋予容器独立外网ip
- windows主机网络信息获取程序设计
- Boost:BOOST_ASSERT_IS_VOID的测试程序
- lnmp环境搭建:Centos7 + Nginx1.12.2 + Mysql-5.6.38 + PHP7.2.0
- Zotero参考文献管理
- linux 函数手册 在线,Linux系统API函数手册
- 判断对象所有属性是否全部为空
- Django-用户认证组件
- MWPhotoBrowser 属性详解 和代理解释
- yosemite php gd,Yosemite下配置PHP支持GD库FreeType
- 通过判断流的头 判断文件类型
- 网桥和交换机的工作原理及区别
- 【ROS】编译软件包packages遇到进度缓慢或卡死,使用swap
- 大规模定制(Mass Customization,MC)
- java计算机毕业设计英语学习网站设计与实现MyBatis+系统+LW文档+源码+调试部署
- kafka问题之Listener method could not be invoked with the incoming message
- 计算机的音量打不开,电脑静音,音量打不开.怎么办?
- 小技巧,IDEA 卡住不动解决办法
- h5在twitter里登陆功能使用体验
热门文章
- linux系统如何配置ssh链接方式【以kali linux系统为例】【有一个坑,网上很多配置找不到PermitRootLogin选项】
- uniapp | 开发中遇到的兼容性问题
- python如何提高for循环效率_如何提高python的遍历效率?
- 第四章--背景图像效果
- lab1-3 使用通用脱壳工具
- 卷积尺寸计算公式(含膨胀卷积和反卷积情况)
- 友转 | 翘首期待Bluetooth Asia 2019蓝牙亚洲大会
- dell optiplex ubuntu 14.04 安装 NVIDIA 显卡驱动
- Hexo+Github博客:新建菜单,并在该菜单内添加单篇/多篇文章
- 下载mysql链接库