JAVA Lambda 表达式

一、什么是Lambda表达式:

在Java中,我们可以给变量赋一个值,而Lambda表达式就是给变量赋一段代码(Java8之前是不行的),所有的Lambda类型都是一个函数式接口,而Lambda表达式本身,也就是”那段代码“,需要是这个接口的实现,简言之:Lambda表达式本身就是一个接口的实现,允许把函数作为一个方法的参数(函数作为参数传递进方法中)。

二、Lambda表达式格式:

    @Test
    void stuPrint() {
        String stuName = "张三";
        String stuAge = "15";
        MyPrinter myPrinter = (name, age) -> {System.out.println("我叫" + name + ",我今年" + age + "岁了");};
        myPrinter.toPrint(stuName, stuAge);
    }

表达式构造:
MyPrinter:函数式接口
myPrinter:别名
(name, age):参数,可为空,不用写参数类型
{System.out.println(“我叫” + name + “,我今年” + age + “岁了”);}; :方法体,相当于是对接口中的方法进行实现,方法体单行的时候可以省略大括号{},如果是个有返回值的表达式,单行的不需要写return关键字,否则需要

三、Lambda表达式有什么用?

最直观的作用就是使得代码变得异常简洁,简化开发。
Java8的Lambda表达式和传统的Java对同一个接口的实现:
JAVA Lambda 表达式_第1张图片
这两种都能实现想要的结果,但是,Java 8中的写法更加优雅简洁。并且,由于Lambda可以直接赋值给一个变量,我们就可以直接把Lambda作为参数传给函数, 而传统的Java必须有明确的接口实现的定义,初始化才行:
JAVA Lambda 表达式_第2张图片
有些情况下,这个接口实现只需要用到一次。传统的Java 7必须要求你定义一个“污染环境”的接口实现MyInterfaceImpl,而相较之下Java 8的Lambda, 就显得干净很多。

四、Lambda表达式特征:

可选类型声明:不需要声明参数类型,编译器可以统一识别参数值。
可选的参数圆括号:一个参数无需定义圆括号,但多个参数需要定义圆括号。
可选的大括号:如果主体包含了一个语句,就不需要使用大括号。
可选的返回关键字:如果主体只有一个表达式返回值则编译器会自动返回值,大括号需要指定明表达式返回了一个数值。

你可能感兴趣的:(java,jvm,开发语言)