// 接口
package com.xssq.lambda3;
/**
* 接口:带参的方法
*/
public interface Flyable {
void fly(String s);
}
// 测试类
package com.xssq.lambda3;
/**
* Lambda表达式测试类
*
*/
public class FlyableDemo {
public static void main(String[] args) {
// 匿名内部类格式
useFlyable(new Flyable() {
@Override
public void fly(String s) {
System.out.println(s);
System.out.println("飞机自驾游");
}
});
System.out.println("------------------------------------------------");
// Lambda格式
useFlyable((String s) -> {
System.out.println(s);
System.out.println("飞机自驾游");
});
}
public static void useFlyable(Flyable fly) {
fly.fly("风和日丽,晴空万里");
}
}
// 输出结果
风和日丽,晴空万里
飞机自驾游
------------------------------------------------
风和日丽,晴空万里
飞机自驾游
无论是使用匿名内部类还是Lambda表达式都能对代码进行简化操作。都是省略了实现接口这一个步骤,还有新建一个实现类对象这个步骤。
Lambda表达式相对于匿名内部类更加简单。只需要吧参数写在形式参数的括号内,有几个参数就用逗号隔开。大括号内就是具体你要做的事情。
下面是匿名内部类的生成文件,使用匿名内部类会生成这样的一个文件,使用Lambda并不会生成这样的一个文件。