#前言 在详解Java8特性之Lambda表达式 中我介绍了Java8中的Lambda表达式,通过Lambda表达式我们就可以快速地创建一个函数式接口的实例,可以说是大大简便了我们开发。你以为只能做到这么简便了嘛,big big wrong,大大的错,还可以再简便一点。有请我们今天的主角—方法引用
在学习这个之前的得确保你已经学习过Lambda表达式了,因为这个是用在Lambda表达式的。
#方法引用 方法引用如Lambda表达式一样也是一个语法糖,可以用来简化开发。
在我们使用Lambda表达式的时候,"->"右边部分是要执行的代码,即要完成的功能,可以把这部分称作Lambda体。有时候,当我们想要实现一个函数式接口的那个抽象方法,但是已经有类实现了我们想要的功能,这个时候我们就可以用方法引用来直接使用现有类的功能去实现。
这么说有点绕,直接来看例子吧
有个函数式接口Consumer,里面有个抽象方法accept能够接收一个参数但是没有返回值,这个时候我想实现accept方法,让它的功能为打印接收到的那个参数,那么我可以使用Lambda表达式这么做
Consumer<String> consumer = str -> System.out.println(str);
consumer.accept("This is Major Tom");
但是其实我想要的这个功能PrintStream<