Java.Lambda

Lambda表达式

避免匿名内部类定义过多
实质为函数式编程的概念
Lambda表达式的优点:

  • 避免匿名内部类定义过多
  • 使代码简洁、去掉无意义的代码,留下核心逻辑

Functional Interface(函数式接口)

任何接口,如果只包含唯一一个抽象方法,它就是函数式接口。
对于函数式接口,可以通过Lambda表达式来创建接口对象。
lambda表达式语法:

iLike = () -> {
	System.out.println("lambda5");
};

接口实现简化过程

首先定义函数式接口:

interface ILike {
    void lambda();
}

简化接口实现:

  1. 接口实现类
class ILikeImpl implements ILike{
    @Override
    public void lambda() {
        System.out.println("lambda");
    }
}
  1. 静态内部类
static class ILikeImpl2 implements ILike{
    @Override
    public void lambda() {
        System.out.println("lambda2");
    }
}
  1. 局部内部类
class ILikeImpl3 implements ILike{
    @Override
    public void lambda() {
        System.out.println("lambda3");
    }
}
  1. 匿名内部类
iLike = new ILike(){
    @Override
    public void lambda() {
        System.out.println("lambda4");
    }
};
  1. Lambda表达式
iLike = () -> {System.out.println("lambda5");};

Lambda表达式简化

对于函数式接口中带参数的方法:

iLike = (int a) -> {
	System.out.println("love " + a);
}

简化参数类型,多个参数也可以简化参数类型,但必须加括号

iLike = (a) -> {
	System.out.println("love " + a);
}

简化括号

iLike = a -> {
	System.out.println("love " + a);
}

当方法实现只有一行时,可以简化花括号

iLike = a -> System.out.println("love " + a);
tag(s):
show comments · back · home