1,介绍
【1】lambda是什么?
-
简单的说就是一个表达式,用来优化匿名对象。
-
"Lambda 表达式"(lambda expression)是一个匿名函数,Lambda表达式基于数学中的λ演算得名,直接对应于其中的lambda抽象(lambda abstraction),是一个匿名函数,即没有函数名的函数 所以试着使用匿名函数的方式来理解
(params) -> expressio//函数名呢?没有!!!
(params) -> statemen//函数名呢?没有!!!
(params) -> { statements } //函数名呢?没有!!!》》
【2】语法是什么?
-
包含三个部分 一个括号内用逗号分隔的形式参数,参数是函数式接口里面方法的参数 一个箭头符号:->方法体,可以是表达式和代码块,方法体函数式接口里面方法的实现,如果是代码块,则必须用{}来包裹起来,且需要一个return 返回值,但有个例外,若函数式接口里面方法返回值是void,则无需{}
(parameters) -> expression
(parameters) -> { statements; }
-
Lambda表达式是在JDK 8中开始支持的一种函数式推导语言,能够大量减少匿名内部类那种冗余的代码。在Android中,可以大量步回调等场景。Lambda表达式 vs 匿名类既然lambda表达式即将正式取代Java代码中的匿名内部类,那么有必要对二者做一个比较分析。
-
不同点一:关键字 this。匿名类的 lambda表达式的 this 关键字指向包围lambda表达式的类。
-
不同点二:编译方式。Java编译器将lambda表达式编译成类的私有方法。
2,Android studio 关联Lambda
【1】Github地址: