方法引用与构造器引用(Method References)第三版

  • 当要传递给Lambda体的操作,已经有实现的方法了,可以使用方法引用!
  • 方法引用可以看做是Lambda表达式深层次的表达。换句话说,方法引用就是Lambda表达式,也就是函数式接口的一个实例,通过方法的名字来指向一个方法,可以认为是Lambda表达式的一个语法糖
  • 要求:实现接口的抽象方法的参数列表和返回值类型,必须与方法引用的方法的参数列表和返回值类型保持一致!
  • 格式:使用操作符 “::” 将类(或对象)与方法名分隔开来
  • 如下三种主要使用情况
  1. 对象  ::实例方法名
  2. 类     ::静态方法名
  3. 类     ::实例方法名 

1、对象::实例方法

  •  Consumer     中 的 void accept (T t)

  •  PrintStream  中 的 void println(T t)

    // 情况一:对象::实例方法
    // Consumer    中的 void accept(T t)
    // PrintStream 中的 void println(T t)
    @Test
    public void test1() {
        Consumer con1 = str -> System.out.println(str);

        con1.accept("方法的引用");//方法的引用

        System.out.println("=============");

        PrintStream ps = System.out;
        Consumer con2 = ps::println;
        con2.accept("方法的引用");//方法的引用

        Consumer con3 = System.out::println;

        con3.accept("方法的引用");//方法的引用
    }

你可能感兴趣的:(#,方法引用,java,开发语言,Lambda,methodreference,方法的引用)