码迷,mamicode.com
首页 > 其他好文 > 详细

lambda - 徐文强的博客

时间:2019-08-25 20:29:28      阅读:119      评论:0      收藏:0      [点我收藏+]

标签:返回   参数   编译   ssi   返回结果   operator   stat   red   一个   

原文引用https://www.dazhuanlan.com/2019/08/25/5d625e281e591/


概念:

函数式接口
1.@FunctionalInterface(满足第二、三规则 可以省略)
2.接口中只有唯一的一个抽象方法——》自动推导为函数接口
3.多个抽象方法是Object类中的方法,不影响第二条规则

一、语法

lamabda表达式三种编写方式:
1.expression:单条语句表达式
2.statement:语句块
3.reference:方法引用

expression单条语句表达式:
	只能是一个完整的语句,不需要return关键字,解释器会自动计算结果并返回。
示例:
(参数)->表达式

statement语句块
	通过{}包裹多条语句,如果需要返回结果,必须加上return
示例:
(参数)->{}

reference方法引用

如果某个方法在结构伤鱼lambda表达式中对应方法是匹配的那么就可以直接引用给lambda表达式
类型 语法
基于实例方法引用 object::methodName
构造方法引用 className:new
基于参数实例实例方法引用 className::methodName
静态方法引用 className::staticMethodName

lambda表达式主要特征总结:

可选类型声明:不需要声明参数类型,编译器统一识别参数值。
可选参数圆括号:一个参数无需定义圆括号,但多个参数需要。
可选大括号:如果猪蹄只包含一个语句,不需要使用大括号。
可选返回关键字:如果只有一个表达式编译器可自动返回,大括号需要指明返回值

二、语法lambda表达式常用应用场景:

对象排序
动态代理
事件监听
条件过滤
启动线程

三、JDK8自带函数式接口

函数式接口 参数类型 返回值 用途
Consumer T void 对类型T参数操作,无返回结果,包含方法void accept(T t)
Supplier 无 T 返回T类型参数,包含方法T get()
Function T R 对类型T参数操作,返回R类型参数,包含方法R apply(T t)
BiFunction    与Function类似,不同在于接收两个参数
BinaryOperator    类似与BiFunction,不同在于所有参数返回结果必须是一样的
Predicate T boolean T断言型接口,对类型T进行条件筛选操作
BiPredicate    T断言型接口,接收两个参数进行断言

lambda - 徐文强的博客

标签:返回   参数   编译   ssi   返回结果   operator   stat   red   一个   

原文地址:https://www.cnblogs.com/petewell/p/11408893.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!