1. Lambda表达式
1.1 设计
- 面向过程语言
- 面向对象语言
- 函数式程序语言(传递方法/代码块)-- Java8开始,推出Lambda表达式实现
1.2 形式
- 参数,箭头,一个表达式
- 参数,箭头,{多个语句}
- 无参数,仅保留括号,箭头,表达式
- 一个参数,可省略括号,箭头,表达式
- 如果有返回值,类型通过上下文推断,无需声明,只在某几个分支有返回值是不合法的
1.3 特点
- 类似与匿名方法
- 参数,箭头,表达式语句
- 可以忽略写参数类型,上下文推断
- 坚决不声明返回值类型,上下文推断
- 没有public/protected/private/static/final等修饰符
- 单句表达式,将直接返回值,不用大括号
- 带return语句,算多句,必须用大括号
2. 函数式接口
2.1 定义
- 是一个接口,符合Java接口的定义
- 只包含一个抽象方法的接口
- 可以包括其他的default方法、static方法、private方法
- 由于只有一个未实现的方法,所以lambda表达式可以自动填上这个尚未实现的方法
- 采用lambda表达式,可以自动创建出一个(伪)嵌套类的对象(没有实际的嵌套类class文件产生),然后使用,比真正嵌套类更加轻量,更加简洁高效
2.2 系统自带的函数式接口
2.3 自定义函数式接口
建议使用@FunctionalInterface注解,用于编译器检查
标签:接口,箭头,参数,返回值,方法,表达式,Lambda 来源: https://www.cnblogs.com/hunter-w/p/16265158.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。