方法引用:
首先看 Timer t = new Timer(1000, System.out::println);
表达式 System.out::println 就是一个方法引用,等价于Lambda表达式 x -> System.out.println(x);
方法引用的三种情况:
(一)、object::instanceMethod
(二)、Class::staticMethod
这两种情况等价于提供方法参数的Lambda表达式,如上述
System.out::println 等价于 x -> System.out.println(x)
(三)、Class::instanceMethod
这种情况,第一个参数会成为方法的目标
但是都可译为 调用某类的某方法。
当然,this和super也可以使用方法引用。
this::equels 等价于 x -> this.equels(x)
构造器引用:
构造器引用与方法引用很类似,只不过方法名是new,例如:Person::new 是构造器引用。
可以用数组类型建立构造器引用,例如:int[]::new, 它有一个参数:数组长度。等价于 x -> new int[x]