java8 lambda表达式介绍

介绍

lambda 表达式 是 java8 最重要的特性之一

lambda 表达式,并不是 java 特有的功能,python、JavaScript、scala 等开发语言,在早前就已经支持

lambda 表达式是简化代码的,也正是因为过度简化代码,导致可读性较差。

对于 java来说,不用 lambda 表达式,用传统写法,完全可行

应用场景 - 函数式接口

定义 接口,该接口 有且只有一个抽象方法,那么该接口称之为 函数式接口

编写其实现类时,就可以用 lambda 表达式

案例

定义 IMath 接口

定义接口,如下:

public interface IMath {
    //运算
    int operation(int a, int b);

}

提示: 因为 有且只有一个抽象方法,所以是 函数式接口

传统匿名类方式

// 创建匿名类对象
IMath math = new IMath() {
    @Override
    public int operation(int a, int b) {
        return a+b;
    }
};

int res = math.operation(1,2);
System.out.println(res);

lambda表达式

因为是 函数式接口,所以可以用 lambda 表达式:

// lambda 表达式,保留 形参和实现,中间由 -> 分割
IMath math = (int a, int b) -> {
    return a+b;
};

int res = math.operation(2,2);
System.out.println(res);

总结

使用 lambda 表达式,不关心 接口名方法名参数名,只关注 参数类型参数个数返回值


原文出处:http://malaoshi.top/show_1IX361Wvt7Xy.html