java中的λ表达式
λ表达式是jdk8中新特性,用来代替函数式接口
函数式接口:函数式接口(Functional Interface)就是一个有且仅有一个抽象方法,但是可以有多个非抽象方法的接口
lambda 表达式的语法格式:
- (parameters) -> expression
- (parameters) ->{ statements; }
上代码
往常用法:
public class LambdaTest {
public static void main(String[] args) {
// 使用实现类使用
MyLambadaImpl ml = new MyLambadaImpl();
ml.Mylove(0);
}
}
// 定义一个函数式接口
interface MyLambda{
void Mylove(int sum);
}
// 接口实现类,以前的用法
class MyLambadaImpl implements MyLambda{
@Override
public void Mylove(int sum) {
for (int i = 0; i < 20; i++) {
sum += i;
}
System.out.println(sum);
}
}
使用Lambada表达式
/**
* Lambda表达式使用
*/
public class LambdaTest {
public static void main(String[] args) {
// 使用Lambda表达式
MyLambda ml = (int sum) -> {
for (int i = 0; i < 20; i++) {
sum += 1;
}
};
ml.Mylove(10);
}
}
// 定义一个函数式接口
interface MyLambda {
void Mylove(int sum);
}
从代码中可以看出直接去掉了接口的实现类,简化了很多的代码。特别是可以减少内部类的使用