Lambda使用方法:接口 对象名 = (形参)-> {方法体}
有一个iLike接口:
interface iLike{
void lambda(int a);
}
则利用Lambda表达式实现如下:
iLike like = (int a) ->{
System.out.println("大括号内是方法体");
};
当我们要创建一个类继承某接口时,并且这个类只需要用到一次,我们可以有以下五种方法创建类的对象:
- 外部类实现接口
- 静态内部类实现接口
- 局部内部类实现接口
- 匿名内部类实现接口
- Lambda表达式——只有当接口只有一个抽象方法,即函数式接口的时候可以使用;
实例程序如下:
public class TestLambda1 {
//第2种方法:静态内部类
static class like2 implements iLike{
@Override
public void lambda() {
System.out.println("I like lanbda2");
}
}
public static void main(String[] args) {
//测试第1种方法
iLike like = new like1();
like.lambda();
//测试第2种方法
like = new like2();
like.lambda();
//第3种方法:局部内部类
class like3 implements iLike{
@Override
public void lambda() {
System.out.println("I like lanbda3");
}
}
//测试第3种方法
like = new like3();
like.lambda();
//第4种方法:匿名内部类,没有类的名称,必须借助接口或者父类
like = new iLike() {
@Override
public void lambda() {
System.out.println("I like lanbda4");
}
};
like.lambda();
//第5种方法:lambda简化
like = () ->{
System.out.println("I like lanbda5");
};
like.lambda();
}
}
//定义一个接口:只有一个抽象方法,那就是函数式接口
interface iLike{
void lambda();
}
//第1种方法:通过定义外部类,然后实现接口
class like1 implements iLike{
@Override
public void lambda() {
System.out.println("I like lanbda1");
}
}
运行结果显示,五种方法都可以达到效果。