码迷,mamicode.com
首页 > 其他好文 > 详细

004 方法引用

时间:2018-05-11 14:32:33      阅读:137      评论:0      收藏:0      [点我收藏+]

标签:print   eth   静态   构造   不同   接口   怎么   style   并且   

一 . 概述

  在之前我们每一次使用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 方法引用

标签:print   eth   静态   构造   不同   接口   怎么   style   并且   

原文地址:https://www.cnblogs.com/trekxu/p/9024184.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!