lambda表达式,及lambda简化过程
lambda表达式(jdk8特性)
1.为什么要用lambda表达式
原因:因为我们有时候需要用到很多类,但是,这些类我们只用一次或者两次,所以我们用匿名内部类,但是匿名内部类多了还是很麻烦,所以用lambda表达式再次简化这种简单类
让代码更加简洁,避免很多无意义的语句
函数式接口的定义?
lambda表达式使用的前提?
实现一个接口,接口只有一个方法。
lambda的简化顺序 :外部类->静态内部类->局部内部类->匿名内部类->lambda
interface Person{
void say();
}
class Student1 implements Person{//第一个,一个外部的类,比较麻烦,代码也简单
@Override
public void say() {
System.out.println("学生1说了一句话");
}
}
public class LambdaTest {
static class Student2 implements Person{//第2个,静态内部类
@Override
public void say() {
System.out.println("学生2说了一句话");
}
}
public static void main(String[] args) {
Person s1 = new Student1();
s1.say();
Person s2 = new Student2();
s2.say();
class Student3 implements Person{//第3个,局部内部类
@Override
public void say() {
System.out.println("学生3说了一句话");
}
}
Person s3 = new Student3();
s3.say();
Person s4 = new Person() {//匿名内部类,没有类的名称,必须借助接口或者父类
@Override
public void say() {
System.out.println("学生4说了一句话");
}
};
s4.say();
Person s5 = ()->{//lambda方法
System.out.println("学生5说了一句话");
};
s5.say();
}
}
lambda格式:怎么样简化成极限?一句?怎么简化?
(参数列表)->{//参数列表可以继续省掉类型声明,一个形参可以省略括号,方法体只有一句可以省略{}
方法体
}
Pet pet1 = (String food)-> {
System.out.println(food);
};
Pet pet2 = (food)-> {//两个参数的时候不能省略()
System.out.println(food);
};
Pet pet3 = food-> {
System.out.println(food);//方法体多句话的时候不能省略这句话
};
Pet pet4 = food->System.out.println(food);
Runnable接口,就一个run()方法,可以配合lambda
lambda表达式,及lambda简化过程的更多相关文章
- 从匿名方法到 Lambda 表达式的推演过程
Lambda 表达式是一种可用于创建委托或表达式目录树类型的匿名函数. 通过使用 lambda 表达式,可以写入可作为参数传递或作为函数调用值返回的本地函数. 以上是msdn官网对Lambda 表达式 ...
- C#中分别对委托、匿名方法、Lambda表达式、Lambda表达式树以及反射执行同一方法的过程进行比较。
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- C#3.0之神奇的Lambda表达式和Lambda语句
“Lambda 表达式”是一个匿名函数,它可以包含表达式和语句,并且可用于创建委托或表达式目录树类型.所有 Lambda 表达式都使用 Lambda 运算符 =>,该运算符读为“goes to” ...
- java8 快速入门 lambda表达式 Java8 lambda表达式10个示例
本文由 ImportNew - lemeilleur 翻译自 javarevisited.欢迎加入翻译小组.转载请见文末要求. Java 8 刚于几周前发布,日期是2014年3月18日,这次开创性的发 ...
- 匿名函数 lambda表达式(lambda expression)
阅读g2log时,发现有两行代码居然看不懂. 1. auto bg_call = [this, log_directory]() {return pimpl_->backgroundChang ...
- Lambda表达式和Lambda表达式树
LINQ的基本功能就是创建操作管道,以及这些操作需要的任何状态. 为了富有效率的使用数据库和其他查询引擎,我们需要一种不同的方式表示管道中的各个操作.即把代码当作可在编程中进行检查的数据. Lambd ...
- Lambda表达式——注重过程的编程思想
一.使用匿名内部类的匿名对象创建线程和Lambda表达式写法 Lambda表达式写法不用去定义一个Runable接口的实现类: 二.方法入参是一个接口或者接口的实现类 三.对某个类的一些对象实例进行排 ...
- .NET中那些所谓的新语法之三:系统预定义委托与Lambda表达式
开篇:在上一篇中,我们了解了匿名类.匿名方法与扩展方法等所谓的新语法,这一篇我们继续征程,看看系统预定义委托(Action/Func/Predicate)和超爱的Lambda表达式.为了方便码农们,. ...
- Java 8特性探究(1):通往lambda之路与 lambda表达式10个示例
本文由 ImportNew 函数式接口 函数式接口(functional interface 也叫功能性接口,其实是同一个东西).简单来说,函数式接口是只包含一个方法的接口.比如Java标准库中的ja ...
- 系统预定义委托与Lambda表达式
NET中那些所谓的新语法之三:系统预定义委托与Lambda表达式 开篇:在上一篇中,我们了解了匿名类.匿名方法与扩展方法等所谓的新语法,这一篇我们继续征程,看看系统预定义委托(Action/Fun ...
随机推荐
- Jmeter中使用MD5方法
在现在这家公司做测试的项目有用到鉴权,token的生成方式有使用到md5,具体的请求url和入参就不方便透露,讲一讲使用方法吧! 自带的Jmeter插件中是没有这个md5的所以,我们可以 (1)打开选 ...
- iOS开发如何面对疫情过后的面试高峰期 !
2020年本应该是一个 "爱你.爱你"的年份!却因为 黑天鹅 给我们带来非常大的影响! 一.2020年iOS招聘数据分析 这里是 2020年3月份BOSS直聘 北京iOS招聘前几页 ...
- Analysis of endogenous peptides released from osteoarthritic cartilage unravels novel pathogenic markers (解读人:李琼)
文献名:Analysis of endogenous peptides released from osteoarthritic cartilage unravels novel pathogenic ...
- OFD电子证照模版制作工具使用说明
每一类电子证照都具有相同板式,不同的电子证照之间只是文字.图片的差异.生成电子证照常用的方式就是采用模版批量生成. 本软件可以方便的设计证照模版.服务端根据模版生成电子证照,不同种类的电子证照生成逻辑 ...
- CDNbest-设置不缓存
写在开始之前 有时候根据业务需求,我们网站不需要缓存,这时候就需要设置下 让网站不走缓存 步骤一 登录平台找到我们的站点->站点设置->缓存设置 如图 备注:填写需要操作的域名,时间为&q ...
- tpyboard v202 测试tcp通讯,i2c的oled程序,呼吸灯源码,希望对大家有所帮助
1.下载到板子里的main.py代码如果需要驱动oled的,可以参考我上面那篇文章import time, mathimport machineimport network# from ssd1306 ...
- OpenCV-Python 立体图像的深度图 | 五十二
目标 在本节中, 我们将学习根据立体图像创建深度图. 基础 在上一节中,我们看到了对极约束和其他相关术语等基本概念.我们还看到,如果我们有两个场景相同的图像,则可以通过直观的方式从中获取深度信息.下面 ...
- PyTorch专栏(一)
专栏目录: 第一章:PyTorch之简介与下载 PyTorch简介 PyTorch环境搭建 第二章:PyTorch之60min入门 PyTorch 入门 PyTorch 自动微分 PyTorch 神经 ...
- react 周期函数
1.constructor():构造函数执行时间:组件被加载前最先调用,并且仅调用一次作用:定义状态机变量注意:第一个语句必须是super(props),正确定义状态机代码如下constructor( ...
- [RH134] 10-NFS和Samba客户端
NFS和samba服务器的配置,请参考: 这里,我们只讨论客户端的使用 1.NFS客户端的使用 nfs实现的是类Unix系统之间的远程共享目录. 假设我们已经有一个提供nfs服务的服务器,IP为192 ...