Java8新特性学习第一天
Lambda表达式
一. 基本结构:
(param1, param2, param3) -> {}
二. 关于函数式接口:
如果一个接口只有一个抽象方法,那么该接口就是一个函数式接口.
如果我们在某个接口上声明了FunctionalInterface注解, 那么编译器就会按照函数式接口的定义来要求该接口.
如果某个接口只有一个抽象方法,但我们并没有给该接口声明FunctionalInterface注解, 那么编译器依旧会将该接口看作是函数式接口.
三. FunctionalInterface Java Doc
An informative annotation type used to indicate that an interface
type declaration is intended to be a <i>functional interface</i> as
defined by the Java Language Specification
一种信息注释类型,用于指示接口类型声明是由Java语言规范定义的函数接口。
Conceptually, a functional interface has exactly one abstract method. Since {@linkplain java.lang.reflect.Method#isDefault() default methods} have an implementation, they are not abstract. If an interface declares an abstract method overriding one of the public methods of {@code java.lang.Object}, that also does <em>not</em> count toward the interface's abstract method count since any implementation of the interface will have an implementation from {@code java.lang.Object} or elsewhere.
从概念上讲,函数接口只有一个抽象方法。因为 reflect 包中的Method下的默认方法有一个实现,
他不是抽象的。如果一个接口声明一个抽象方法重写了对象的一个公共方法,那么它也不计入接口的抽象方法计数。因
为接口的任何实现都将从{java.Lang.Object }或其他地方实现。
Note that instances of functional interfaces can be created with lambda expressions, method references, or constructor references
注意,可以使用lambda表达式、方法引用或构造函数引用创建函数接口的实例。
If a type is annotated with this annotation type, compilers are required to generate an error message unless:
1.The type is an interface type and not an annotation type, enum, or class
2.The annotated type satisfies the requirements of a functional interface.
如果一种类型被注释为这种注释类型,编译器需要生成一条错误消息,除非:
- 类型是接口类型,而不是注释类型、枚举或类
- 带注释的类型满足函数式接口的要求。
Java8新特性学习第一天相关推荐
- Java8新特性学习笔记
Java8新特性学习笔记 文章目录 Java8新特性学习笔记 一.接口和日期处理 1.接口增强 1.1.JDK8以前 VS JDK8 1)接口定义: 1.2.默认方法(default) 1)默认方法格 ...
- Java8新特性学习_001_(Lambda表达式,函数式接口,方法引用,Stream类,Optional类)
目录 ■代码 ■代码运行结果 ■代码说明 ・44行:Stream的.foreach方法ー参数类型:函数式接口 ・82行:Interface中,default方法 ・92行 Stream的.max方 ...
- java8新特性学习笔记(Lambda,stream(),filter(),collect(),map())
文章目录 1.lambda表达式(重点) 1.需求分析 2.Lambda表达式初体验 3.Lambda的语法规则 3.1 Lambda练习1 3.1 Lambda练习2 4.Lambda表达式的原理 ...
- Java8新特性学习记录
前言: Java 8 已经发布很久了,很多报道表明Java 8 是一次重大的版本升级.在Java Code Geeks上已经有很多介绍Java 8新特性的文章, 例如Playing with Java ...
- 【转载保存】java8新特性学习
编者注:Java 8已经公布有一段时间了,种种迹象表明Java 8是一个有重大改变的发行版. 在Java Code Geeks上已经有大量的关于Java 8 的教程了,像玩转Java 8--lambd ...
- 【CSDN软件工程师能力认证学习精选】 Java8新特性学习-函数式编程(Stream/Function/Optional/Consumer)
CSDN软件工程师能力认证是由CSDN制定并推出的一个能力认证标准,宗旨是让一流的技术人才凭真才实学进大厂拿高薪,同时为企业节约大量招聘与培养成本,使命是提升高校大学生的技术能力,为行业提供人才储备, ...
- java8新特性学习笔记之唠唠“匿名内部类与lambda”
负一.知道啥是匿名内部类不? 要使用lambda,我觉得你至少得明白匿名内部类是个啥."o -> o.getName"是lambda表达式,"Book::getNa ...
- Java8新特性学习(lambda,函数式接口,stream,Optional)
一. Lambda Lambda 是一个匿名函数,我们可以把 Lambda表达式理解为是一段可以传递的代码(将代码像数据一样进行传递).可以写出更简洁.更灵活的代码.作为一种更紧凑的代码风格,使Jav ...
- java8新特性学习笔记链接
https://blog.csdn.net/yitian_66/article/details/81010434 转载于:https://www.cnblogs.com/wangxuekui/p/10 ...
- 【Todo】Java8新特性学习
参考这篇文章吧: http://blog.csdn.net/vchen_hao/article/details/53301073 还有一个系列 转载于:https://www.cnblogs.com ...
最新文章
- Ubuntu下设置电信拨号上网(10.04版)
- “放到桌面”的Servlet实现
- ERP云端争霸 甲骨文和SAP打对攻 金蝶忙转身用友原地等待
- sql 百分数_SQL经典50题笔记
- java线程死锁_Java线程死锁–案例研究
- 前端学习(1126):递归求数学题
- adam算法效果差原因_信电学院本科生提出AI新算法:速度比肩Adam,性能媲美SGD,ICLR领域主席赞不绝口...
- Ubuntu安装OpenTSDB
- PCB封装下载方法(亲测有效)
- matlab坐标轴非均匀分布,matalb——生成离散非均匀随机数
- 如何利用TFTP服务器上传文件到真机交换机?可使用SecureCRT和3CDaemon工具
- UINO优锘:深度|扒一扒图化资源申请之三生三世那点事儿
- presenting view controller Vs presented view controller
- CS224W-图神经网络 笔记5.1:Spectral Clustering - 谱聚类基础知识点
- 计算机实战项目之 [含论文+辩论PPT+源码等]微信小程序社区疫情防控+后台管理|前后分离VUE[包运行成功
- Genymotion 各对应版本
- 云效部署应用失败问题排查
- TM4C1294使用
- 前端React项目部署
- 2018年1月27日训练日记
热门文章
- intel android 平板,IT百科之英特尔芯平板
- 白岩松人生哲学-听后感
- 三分钟细数 el-form 表单校验的坑点,前车之鉴,可助你避坑
- MATLAB学习笔记(注释超详细)
- Android拓展系列(5)--CyanogenMod源码下载和编译(Android ROM定制基础篇)
- 【观察】百度搜索开放平台
- [锁 Lock] Lock lock = new ReentrantLock()之自增序列号
- 大学生必知到的外国典故
- 二维数组更改vue,VueX中直接修改数据报错,修改一维数组,二维数组,报错的原因...
- 《刘擎西方现代思想讲义》读书笔记