004 方法引用

Posted trekxu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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的一种简写方式,认清其实只是写法的不同而已.

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

 

以上是关于004 方法引用的主要内容,如果未能解决你的问题,请参考以下文章

无法对非静态方法 getAssets() 进行静态引用 - 无法在片段中播放音频

学习笔记GAN004:DCGAN main.py

如何在 FragmentPagerAdapter 中添加片段标签以便稍后引用片段?

NPOI操作Excel 004:写入空Excel(添加保存提示框)

直面Java 第004期。

片段中的网格视图