0%

方法引用 学习笔记

方法引用
方法引用通过方法的名字来指向一个方法。

方法引用场景
方法引用和Lambda都需要函数式接口

引用的方法 必须 和函数式接口中的抽象方法,参数列表和返回值一致(方法名不需要一致)

即:如果发现某个类中有一个方法,和函数式接口抽象方法,参数和返回值都一样,那就可以直接引用该方法

方法引用可以使语言的构造更紧凑简洁,减少冗余代码。

方法引用语法
方法引用使用一对冒号 :: 。

::方法名

::JDK 1.8 提出的新运算符—引用运算符。

作用:将某个方法引用过了,传递给函数式接口,接口调用方法时,就是调用引用来的方法

构造器引用:它的语法是Class::new,或者更一般的Class< T >::new实例如下:

1
2
final Car car = Car.create( Car::new ); 
final List< Car > cars = Arrays.asList( car );

静态方法引用:它的语法是Class::static_method,实例如下:

1
cars.forEach( Car::collide );

特定类的任意对象的方法引用:它的语法是Class::method实例如下:

1
cars.forEach( Car::repair );

特定对象的方法引用:它的语法是instance::method实例如下:

1
2
final Car police = Car.create( Car::new ); 
cars.forEach( police::follow );