方法引用
方法引用通过方法的名字来指向一个方法。
方法引用场景
方法引用和Lambda都需要函数式接口
引用的方法 必须 和函数式接口中的抽象方法,参数列表和返回值一致(方法名不需要一致)
即:如果发现某个类中有一个方法,和函数式接口抽象方法,参数和返回值都一样,那就可以直接引用该方法
方法引用可以使语言的构造更紧凑简洁,减少冗余代码。
方法引用语法
方法引用使用一对冒号 :: 。
::方法名
::JDK 1.8 提出的新运算符—引用运算符。
作用:将某个方法引用过了,传递给函数式接口,接口调用方法时,就是调用引用来的方法
构造器引用:它的语法是Class::new,或者更一般的Class< T >::new实例如下:
1 | final Car car = Car.create( Car::new ); |
静态方法引用:它的语法是Class::static_method,实例如下:
1 | cars.forEach( Car::collide ); |
特定类的任意对象的方法引用:它的语法是Class::method实例如下:
1 | cars.forEach( Car::repair ); |
特定对象的方法引用:它的语法是instance::method实例如下:
1 | final Car police = Car.create( Car::new ); |