367方法引用(体验)
在使用lambda表达式时,传递的代码实际上是一种解决方法,用参数做操作。
考虑这样一种情况——lambda中指定的操作方案,已经有相同的代码了,如何直接借用,不再重复写代码?——使用方法引用
【方法引用符】::(2个英文引号)】
有这个符号的语句,就是方法引用
> 可推导的就是可省略的
【需求】
- 定义接口1个,在里面写抽象方法1个printString(String s)
- 定义测试类1个,
- 定义方法1个,main,调用usePrintable
- 定义私有静态方法1个,usePrintable
---------------------------------------------
package e367;
public interface Inter367 {
void printString(String s);
}
---------------------------------------------
package e367;
import java.awt.print.Printable;
public class Demo {
public static void main(String[] args) {
System.out.println(111);
usePrintable((String s) -> {
System.out.println(s);
});
//以上3句优化为1句
System.out.println(222);
usePrintable(s -> System.out.println(s));
//用 方法引用 优化
System.out.println("::");
usePrintable(System.out::println);
// 可推导的就是可省略的
}
private static void usePrintable(Inter367 in) {
in.printString("take your place.");
}
}
/*
111
take your place.
222
take your place.
::
take your place.
*/