Lamda表达式


  • Lamda表达式
    • 作用
    1. 可以避免内部类定义过多
    2. 可以让代码看起来很简洁
    3. 求掉一堆没有意义的代码,只留下核心的逻辑
    • 函数式接口
    1. 任何接口,如果只包含唯一一个抽象方法,那么它就是一个函数式接口
    2. 对于函数式接口,我们可以通过lanbda表达式来创建该接口的对象
package com.cn.TestLambda;
//推导lanmbda表达式
public class TestLambda {
//    静态内部类
    static class Like2 implements Ilike{

    @Override
    public void lambad() {
        System.out.println("i like lambda3");
    }
}
    public static void main(String[] args) {
        Ilike ilike = new Like();
        ilike.lambad();

//        局部内部类
        class Like2 implements Ilike {

            @Override
            public void lambad() {
                System.out.println("i like lambda2");
            }
        }
        ilike = new Like2();
        ilike.lambad();

//        匿名内部类,没有类名称,必须借助接口或者父类
        ilike = new Ilike() {
            @Override
            public void lambad() {
                System.out.println("i like lambda4");;
            }
        };
        ilike.lambad();

//        用lambda简化
        ilike=()-> System.out.println("i like lambda5");
        ilike.lambad();
        }
    }

//定义一个函数式接口
interface Ilike{
    void lambad();
}
class Like implements Ilike{

    @Override
    public void lambad() {
        System.out.println("i like lambda1");
    }
}