java8 新特性之方法引用

参考文章:菜鸟教程 https://www.runoob.com/java/java8-method-references.html

这一章节如果不好理解可以去看下我的另一篇函数接口,这章节其实用到的也是函数结果。

java8 新特性之函数式接口

方法引用介绍:

方法引用通过方法的名字来指向一个方法。

方法引用可以使语言的构造更紧凑简洁,减少冗余代码。

方法引用使用一对冒号 :: 。

1、构造器引用:它的语法是Class::new,或者更一般的Class< T >::new实例如下:

// 构造方法引用  暂时发现只能无参构造方法引用
Supplier<Lambda> supplier  = Lambda::new;

2、静态方法引用:它的语法是Class::static_method,实例如下:

public class Lambda {

    Lambda(){};
    Lambda(int i){};

    static void test(Lambda l){System.out.println(l);};
    static void test2(String l){System.out.println(l);};

    public static void main(String[] args) {
        // 构造方法引用  暂时发现只能无参构造方法引用
        Supplier<Lambda> supplier  = Lambda::new;
        Consumer<Lambda> consumer = x->System.out.println(x);;
        Consumer<Lambda> consumer2 = Lambda::test;
        Consumer<String> consumer3 = Lambda::test2;
    }
}

3、特定类任意实例的方法引用:它的语法是instance::method实例如下:

Supplier<Lambda> supplier  = Lambda::new;
Supplier<Integer> consumer4 = supplier.get()::repair;

 

由上可以看出,只是把这个类的方法,赋值给函数接口,具体调用的时候传入参数 ,编译期检查参数类型是否符合函数接口的泛型。

 

posted @ 2021-01-11 19:44  苦心明  阅读(222)  评论(0)    收藏  举报