- 当要传递的Lambda体的操作 已经有实现的方法了 可以使用方法引用
 - 方法引用可以看作Lambda表达式深层次的表达 换句话说 方法引用就是Lambda表达式 也就是函数式接口的一个实例 通过方法的名字来指向一个方法 可以认为式Lambda表达式的一个语法糖
 - 要求: 实现接口的抽象方法的参数列表和返回值类型 必须与方法引用的方法参数列表和返回值类型保存一致
 - 格式: 使用操作符 “::”将类(或对象)与方法名分隔开来
 - 如下三种主要使用情况
- 对象::实例方法名称
 - 类::静态方法名称
 - 类::实例方法名称 ```java /**
 
- @author:LYY
 - @Date:2022/5/13 *
 - 方法引用测试(练习) */ public class MethodRefTest {
 
 
/*** 情况一:* 对象::实例方法*/@Testvoid test01() {// Lambda表达式Consumer<String> a = (name) -> System.out.println(name);a.accept("北京");// 方法引用PrintStream out = System.out;// out实例调用他的方法 实现了Consumer接口的方法体Consumer<String> b = out::println;b.accept("南京");}/*** 情况二* 类::静态方法*/@Testvoid test02() {// lambda表达式Comparator<Integer> c1 = (num1,num2) -> Integer.compare(num1,num2);int compare = c1.compare(55, 66);System.out.println(compare);System.out.println("****************");// 方法引用Comparator<Integer> s1 = Integer::compare;int compare1 = s1.compare(66, 55);System.out.println(compare1);}/*** 情况三* 类::实例方法* 方法存在两个参数 其中一个参数作为调用者时 可以使用方法引用 类::实例方法*/@Testvoid test03() {// lambda表达式Comparator<String> s1 = (str1, str2) -> str1.compareTo(str2);int compare1 = s1.compare("a", "B");System.out.println(compare1);// 方法引用 类::实例方法Comparator<String> s2 = String::compareTo;int compare2 = s2.compare("B", "a");System.out.println(compare2);}
}
```
