004 方法引用

一 . 概述

  在之前我们每一次使用lambda都是自已创建的,但是有的时候我们可能使用的lambda就是现在已有的方法了.

  毕竟lambda就是一个方法的实现.

  在jdk8之中定义了方法引用的概念,这可以让我们实现方法的复用,请记住,方法引用仅仅只是lambda的一种简化写法而已,没有什么奇怪的地方.


二 .方法引用

在这里只是介绍两种方法引用,不会去将构造函数引用这些.

[1]静态方法引用

在jdk8之中,定义了四种方法引用,在下面一次介绍这四种方法引用.

  静态方法引用 : 类名 :: 静态方法名

例子 :  

    public static  void add() {
        System.out.println("add method ....");
    }
    
    @Test
    public void test3() {
        //定义一个静态的方法引用
         new Thread(LambdaTest :: add) .start();
    }

首先我们定义了一个静态方法,然后我们实现了一个线程.

  由于我们定义的静态函数和此处需要的lambda的接口形式是一致的,因此我们就可以使用这个静态的方法引用替换前面的lambda的使用.

[2]实例方法引用

    public void div() {
        System.out.println("div ...");
    }
    
    
    
    @Test
    public void test4() {
        LambdaTest test = new  LambdaTest();
        new Thread(test :: div).start();
    }

我们定义了一个实例方法,并且创建了一个对象的实例.

我们在我们需要使用lambda的地方传入了一个实例方法的引用.


三 . 总结

  我们必须只将方法引用视为lambda的一种简写方式,认清其实只是写法的不同而已.

  个人认为,代码怎么容易理解,我们就应该使用哪种方式,比如方法引用有的时候就会非常难以理解.

猜你喜欢

转载自www.cnblogs.com/trekxu/p/9024184.html
004
今日推荐