Lamda表达式可以简化匿名内部类
理解Functional Interface(函数式接口)是学习Java8 lambda表达式的关键所在。
函数式接口的定义:任何接口,如果只包含唯一一个抽象方法,那么它就是一个函数式接口。
对于函数式接口,我们可以通过lambda表达式来创建该接口的对象。
示例:
public class TestLamda {
public static void main(String[] args) {
//匿名内部类 创建接口对象
Animal animal = new Animal(){
public void run(String name){
System.out.println(name+"正在跑!");
}
};
animal.run("兔子");
//lamda表达式 创建接口对象
Animal animal2 = (String name) -> {
System.out.println(name + "正在跑!");
};
//lamda简化1:去掉参数类型
animal2 = (name) -> {
System.out.println(name + "正在跑!");
};
//lamda简化2:参数或方法体唯一时,可以去掉括号
animal2 = name -> System.out.println(name + "正在跑!");
animal2.run("乌龟");
}
interface Animal{
void run(String name);
}
}
原文:https://www.cnblogs.com/haao/p/14699732.html