方法引用概述
方法引用是java8Lambda表达式引入的新特性。 可以直接引用已有类或对象的方法或构造器。
方法引用的条件
在Lambd表达式的主体中只包含一个表达式,并且表达式中只调用了一个已经存在的方法。
方法引用格式
类|对象 :: 构造方法|静态方法|普通方法, :: 之前,是对象或者类,:: 之后是,方法名称或构造方法。如果是构造方法 使用关键字 new。
应用方法
说明
静态方法引用
class :: staticMethod
构造方法引用
class :: new
任意方法的引用
class :: method 或者 instance :: method
方法引用示例
方法引用的变迁之路:
//匿名类Consumer<String> consumer =newConsumer<>() {@Overridepublicvoidaccept(Strings) { System.out.println(s); } }; consumer.accept("comsumer");//Lamdba 表达式Consumer<String> consumerLambda = (s) -> System.out.println(s); consumerLambda.accept("consumerLambda");//方法引用Consumer<String> consumerMethodReference = System.out::println; consumerMethodReference.accept("mehtod reference ");小结:
方法引用(method Reference)目的使得代码更加简洁。
方法引用条件:Lambda表达式的表达主体内只有一个已存在方法的调用。
如果Lambda表达式的主体内有多个方法调用,但是想用方法引用,可以将里面的代码提取成一个方法,然后使用这个 方法引用 就行了。