Lambda表达式主要目的是在使用单接口(只含有一个方法的接口)匿名类时让代码更加简洁。
Lambda表达式就是一个匿名方法(函数)
通常的方法:
int f(int a,int b ) {
return a+b;
}
Lambda表达式:
(int a,int b ) -> {
return a+b;
}
Lambda表达式:
扫描二维码关注公众号,回复:
13293884 查看本文章
(a, b ) -> {
return a+b;
}
Lambda表达式只写参数列表(可以省略参数的类型)和方法体 (参数列表和方法体之间的符号是 ->)
假如Com是一个单接口(不必关心接口里方法的名称)
Lambda表达式,简化了匿名类的用法.如果更改了接口里方法的名字,Lambada表达式不受影响
Com com = (double x) -> {
return x*x*x;
};
Lambda表达式示例:
package lambda;
interface Person{
public abstract double show(double x);
}
class Animals{
public void traverse(Person p) {
double m = p.show(5);
System.out.println("Lambda只有在接口中才能使用!");
}
}
public class Lambda {
public static void main(String[] args) {
// TODO 自动生成的方法存根
Person p = new Person() {
public double show(double x) {
return x*x;
}
};
System.out.println(p.show(2));
p = (double x)->{ // Lambda 只有在接口中才能实现
return x*x*x;
};
System.out.println(p.show(8));
Animals a = new Animals();
a.traverse((double x)->{ // 省略声明对象和方法名
return x*x*x;
});
}
}