jdk8新特性 ——Lambada表达式
java在jdk8之前是没有Lambada函数式编程,只有匿名类,jdk8出现了Lambada表达式,简化了编写匿名类的代码。
Lambada只能用在单一抽象方法的接口。
使用方式如下,以Runnable接口为例。
Lambada表达式写法 Runnable r=()->{run detail}
匿名类写法
Runnable r=new Runnable() {
@Override
public void run() {
run detail
}
};
因此可以这样使用Lambada表达式来实现子线程,
new Thread(()->{run detail});
两者在功能上是等价的,但lambada表达式更加简洁易懂。
()是参数内容,{}是具体的接口内抽象方法的处理逻辑。
例子如下
接口
interface Test {
void method(int i);
}
实现如下
Test a=(i)->{i=i+1;};
i能被自动推测出数据类型为int