Lambda表达式

什么是Lambda表达式

个人认为 是一种简化代码的一种方法 让代码看着更简洁 更舒服

语法

无参数:()->一行表达式....;
一个参数:a->一行表达式....;
多个参数(a,b,...n)->{表达式};

()只有一个参数的情况下才可以省略

{}只有一行表达式的情况下才可以省略

示意图

Lambda表达式

示例

package day02;


/*
 * 推导lambda表达式
 *
 * 函数式接口:任何接口 如果仅仅包含一个抽象方法 那么他就是一个函数式接口
 *
 * 对于函数式接口 可以通过Lambda表达式来创建该接口的对象
 * */
public class TestLambda {
    // 静态内部类
    static class BoyIn implements Boy {
        @Override
        public void say() {
            System.out.println("静态内部类之我是一个男孩");
        }
    }

    public static void main(String[] args) {
        // 直接调用
        new BoyIn().say();

        // 局部内部类
        class BoyIn implements Boy {
            @Override
            public void say() {
                System.out.println("局部内部类之  我是一个男孩");
            }
        }
        Boy boy = new BoyIn();
        boy.say();

        // 匿名内部类   没有类的名称 必须借助接口或者父类
        boy = new Boy() {
            @Override
            public void say() {
                System.out.println(" 匿名内部类 之  我是一个男孩");
            }
        };
        boy.say();

        // 用Lambda简化
        boy = ()->{
            System.out.println(" Lambda简化 之  我是一个男孩");
        };
        boy.say();
    }
}


interface Boy {
    void say();
}


// 定义一个实现类
class BoyIn implements Boy {

    @Override
    public void say() {
        System.out.println("我是一个男孩1");
    }
}

输出结果

Lambda表达式

小结

当且仅当任何接口只有一个抽象方法的时候 才可以使用Lambda表达式

省去了大量的代码 让代码看着更简洁 执行效率更快

上一篇:Golang Gin使用模板及框架下返回Json


下一篇:ES6——类class