方法引用通过方法名指向一个方法,可以是Lambda表达式更短小,使代码更简洁;
方法引用的符号是一对双冒号“::”;
方法引用共有4中方式:
- 静态方法引用 Class::staticMethod
- 对象方法引用 Obj::method
- 特定类的任意方法引用 Class::method
- 构造方法引用 Class::new
一些例子:
静态方法引用、对象方法引用,可以看到比Lambda更加简洁:
对构造方法的引用:
对特定类的任意方法引用会复杂一点点:
可以看到函数式接口里的抽象方法是有两个参数的,第一个参数是要执行方法(给接口赋值时指定的方法)的实例对象,第二个参数是要执行方法的参数;
当调用接口里的方法时,就相当于用第一个参数的实例对象调用了引用的方法,并把后面的参数传递给引用方法;