lambda表达式
lambda函数式接口(Functional Interface)就是一个有且仅有一个抽象方法,但是可以有多个非抽象方法的接口。
函数式接口可以被隐式转换为 lambda 表达式。
/**
* 定义一个函数式接口
*/
interface ILike {
abstract void lambda();
}
/**
* 1.函数式接口实现类
* 函数式接口(Functional Interface)就是一个有且仅有一个抽象方法,但是可以有多个非抽象方法的接口。
*/
class Like1 implements ILike {
@Override
public void lambda() {
System.out.println("i like lambda1");
}
}
/**
* 推导lambda方法
*/
public class TestLambda {
public static void main(String[] args) {
ILike like1 = new Like1();
like1.lambda();
ILike like2 = new Like2();
like2.lambda();
/**
* 3.局部内部类
*/
class Like3 implements ILike {
@Override
public void lambda() {
System.out.println("i like lambda3");
}
}
ILike like3 = new Like3();
like3.lambda();
ILike lik4 = new ILike() {
/**
* 4.匿名内部类
*/
@Override
public void lambda() {
System.out.println("i like lambda4");
}
};
lik4.lambda();
/**
* lambda简化
* 必须是函数式接口
*/
ILike like5 = () -> {
System.out.println("i like lambda5");
};
like5.lambda();
/**
* 只有一行代码可以继续简化,多行不能简化
*/
ILike like6 = () -> System.out.println("i like lambda6");
like6.lambda();
}
/**
* 2.定义一个静态内部类
*/
static class Like2 implements ILike {
@Override
public void lambda() {
System.out.println("i like lambda2");
}
}
}
参考资料:
https://www.runoob.com/java/java8-functional-interfaces.html