lambda表达式
避免匿名内部类定义过多;可以让代码看起来很整洁;去掉无意义的代码,只留下核心逻辑
函数式接口
任何接口。如果只包含唯一一个抽象方法,那么它是一个函数式接口。
public interface Runnable{
public abstract void run();
}
对于函数式接口,可以通过lambda表达式来创建该接口的对象。
其实质属于函数式编程的概念
(params) -> expressions [表达式]
(params) -> statement [语句]
(params) -> {statements}
a-> System.out.prinln("i like lambda -->" + a);
多线程中简化程序:
new Thread (()->System.out.prinln("多线程学习。。")).start();
例子
public class TestLambda {
//3、静态内部类
static class like2 implements ILike{
@Override
public void lambda() {
System.out.println("i like lambda2");
}
}
public static void main(String[] args) {
ILike like = new like();
like.lambda();
like = new like2();
like.lambda();
//4、局部内部类
class like3 implements ILike{
@Override
public void lambda() {
System.out.println("i like lambda3");
}
}
like = new like3();
like.lambda();
//5、匿名内部类
like = new ILike() {
@Override
public void lambda() {
System.out.println("i like lambda4");
}
};
like.lambda();
//6、用lambda简化
like = ()->{
System.out.println("i like lambda5");
};
like.lambda();
}
}
//1、定义一个函数式接口
interface ILike{
void lambda();
}
//2、实现类
class like implements ILike{
@Override
public void lambda() {
System.out.println("i like lambda1");
}
}