#前言
在详解Java8特性之Lambda表达式 中我介绍了Java8中的Lambda表达式,通过Lambda表达式我们就可以快速地创建一个函数式接口的实例,可以说是大大简便了我们开发。你以为只能做到这么简便了嘛,big big wrong,大大的错,还可以再简便一点。有请我们今天的主角—方法引用

在学习这个之前的得确保你已经学习过Lambda表达式了,因为这个是用在Lambda表达式的。

#方法引用
方法引用如Lambda表达式一样也是一个语法糖,可以用来简化开发。

在我们使用Lambda表达式的时候,"->"右边部分是要执行的代码,即要完成的功能,可以把这部分称作Lambda体。有时候,当我们想要实现一个函数式接口的那个抽象方法,但是已经有类实现了我们想要的功能,这个时候我们就可以用方法引用来直接使用现有类的功能去实现。

这么说有点绕,直接来看例子吧

有个函数式接口Consumer,里面有个抽象方法accept能够接收一个参数但是没有返回值,这个时候我想实现accept方法,让它的功能为打印接收到的那个参数,那么我可以使用Lambda表达式这么做

Consumer<String> consumer = str -> System.out.println(str);
consumer.accept("This is Major Tom");

但是其实我想要的这个功能PrintStream<

详解Java8特性之方法引用相关推荐

  1. 详解Java8特性之新的日期时间 API

    #吐槽 Java 8 提供了一套新的日期时间 API,为什么要这么干呢.因在旧版的 Java 中,日期时间 API 存在很多问题,比如说线程安全问题了, java.util.Date 是非线程安全的, ...

  2. 【java8新特性】——方法引用(四)

    一.简介 方法引用是java8的新特性之一, 可以直接引用已有Java类或对象的方法或构造器.方法引用与lambda表达式结合使用,可以进一步简化代码. 来看一段简单代码: public static ...

  3. 切克闹!Java8新特性之方法引用

    Java8 中引入方法引用新特性,用于简化应用对象方法的调用,方法引用是用来直接访问类或者实例的已经存在的方法或者构造方法.方法引用提供了一种引用而不执行方法的方式,它需要由兼容的函数式接口构成的目标 ...

  4. Jdk1.8新特性(三)——方法引用::

    Lambda表达式可以用来创建匿名方法,有时候使用lambda表达式仅仅是调用一个已存在的方法: Arrays.sort(stringsArray,(s1,s2)->s1.compareToIg ...

  5. 处理对象(toString()方法详解和==与equals方法的区别)

    处理对象(toString()方法详解和==与equals方法的区别) toString()是一个非常特殊的方法,它是一个自我描述的方法.当程序员直接打印该对象的时候,系统会输出该对象的"自 ...

  6. indesign图片规定在左下角_详解InDesign基本使用方法

    详解InDesign基本使用方法 为了使朋友们尽快掌握InDesign的使用方法,下面,我们通过一个例子来说明它的操作过程.做之前,先要说两句.乍一接触Indesign,许多朋友会觉得很不熟悉,很不适 ...

  7. python获取屏幕文字_详解:四种方法教你对Python获取屏幕截图(PyQt , pyautogui)...

    前言: 今天为大家带来的内容是详解:四种方法教你对Python获取屏幕截图(PyQt , pyautogui)本文具有不错的参考意义,希望能够帮助到大家! Python获取电脑截图有多种方式,具体如下 ...

  8. JDK8新特性之方法引用

    转载自 JDK8新特性之方法引用 什么是方法引用 方法引用是只需要使用方法的名字,而具体调用交给函数式接口,需要和Lambda表达式配合使用. 如: List<String> list = ...

  9. python导入模块介绍_详解Python模块导入方法

    python常被昵称为胶水语言,它能很轻松的把用其他语言制作的各种模块(尤其是C/C++)轻松联结在一起.python包含子目录中的模块方法比较简单,关键是能够在sys.path里面找到通向模块文件的 ...

最新文章

  1. C# 正则表达式过滤危险HTML
  2. 用python生成词云wordcloud
  3. 设计模式19——行为型模式之备忘录模式
  4. 完整的MIME类型列表
  5. Spring boot + mybatis plus 快速构建项目,生成基本业务操作代码。
  6. 如果谁和飞鸽传书讨论这两个问题
  7. oracle有回表没有,ORACLE回表
  8. 什么是 JS 原型链?
  9. 所见即搜,3分钟教你搭建一个服装搜索系统!
  10. 3. 什么是icmp?icmp与ip的关系_公共关系与人际交往能力自主模式课程相关
  11. php7对redis的扩展及redis主从搭建
  12. linux进程挂起的原因6,linux – 如何找出ssh进程挂起的原因?
  13. libevent源码分析:bufferevent
  14. 在JS中关于堆与栈的认识function abc(a){ a=100; } function abc2(arr){ arr[0]=0; }
  15. 向量空间的基和维数例题_线性空间的基和维数
  16. 企业级数据服务总线规划
  17. 笑死人的12星座宝贝
  18. Linux 服务大全详解
  19. xmind做会议记录的方法
  20. 算法:NP问题,NP完全问题(NPC),NPhard问题

热门文章

  1. Python编写定时执行脚本
  2. React项目搭建的基本流程
  3. Oracle监听端口修改
  4. python中的join方法
  5. 35岁!作为顶级程序员的洋哥,开始变得柔软了!
  6. 分布式任务调度(XXL-JOB)
  7. 漫画:面试官考我图形推理题,我该怎么办?
  8. Redis 存储对象信息是用 Hash 还是 String
  9. MySQL如何实现select into 临时表的功能
  10. Python实现字典树