使用Java已经存在的方法 练习方法引用
package cn.com.zq.demo03.Reference.Test03.Reference;
/*
* 方法引用 练习
* 使用系统已经存在的 方法 进行引用
* 为什么要有方法引用?
* 主要是对Lambda表达式的优化 当代码中 已经存在 对应的类 对应的对象 对应的this 对应的super 的时候
* 我们可以使用他们来直接使用方法 ,达到对Lambda表达式的简化
* 注意 : 使用前提
* 1、System.out是已经存在的
* 2、println也是已经存在了的
* */
public class Test01PrintableReference {
public static void main(String[] args) {
// 实现方式一 : 匿名内部类
printString(new IPrintable() {
@Override
public void print(String s) {
System.out.println(s);// 输出结果 :hello World!
}
});
// 实现方式二 : Lambda表达式
printString(s -> System.out.println(s));//输出结果 :hello World!
// 使用 方法引用优化Lambda表达式
printString(System.out::println);//::是引用运算符 输出结果 : hello World!
}
// 首先定义一个方法 参数传递 自定义的函数式接口
public static void printString(IPrintable ipa) {
// 调用 接口中的抽象方法
ipa.print("hello World!");
}
}
package cn.com.zq.demo03.Reference.Test03.Reference;
/*
* 定义一个字符串的函数式接口
* */
@FunctionalInterface
public interface IPrintable {
void print(String s);
}