lambda表达式
1.什么是lambda表达式?
本质上,lambda表达式是一个匿名的方法,也就是未命名的方法。
可是这个方法有点特殊,并不能独立执行,而是用于实现函数式接口(函数式接口在java指定的是:有且仅有一个抽象方法的接口就称为函数式接口。)的另一个方法,从而导致产生一个匿名类。当然lambda也称之为闭包。运算符号为**->**,也称之为箭头运算符。该符号将Lambda表达式分两部分。左侧指定Lambda的参数,右侧指定表达式的动作。
什么是闭包呢?
及,函数中的函数,定义与内部类有点相似,只不过是范围不同,一个是在类中一个是在方法中。虽然慨念简单但用起来比教困难。
函数式接口特点
函数式接口l可以指定Object的任何公有方法,例如equals(),而不影响作为”函数式接口“的状态,而Object的公有方法被视为函数接口的隐式成员。
interface Runnable {
void run()
}
举一个例子,Runnable是一个函数接口,在该接口中只定义一个run()方法。因此,run()定义了Runnable动作。
Lambda表达的定义
//这是一个简单Lambda表达式
//这个表达式没有形参,它的反回值为 5.20 判断该表达式为double型
() -> 5.20
// 做用类似于
// double 函数名(){ return 5.20 }
---------------------------------------------------------
()-> Math.random()*100
// 该表调用Math.random()方法生成一个随机数乘以100,然后反回结果。
---------------------------------------------------------
//反回boolean型的Lambda表达式
(n)->(n%2)==0
//传入一个整型数据,判断是否为偶数,如果是偶数则反回 true,否则反回false。