所有示例代码打包下载 : 点击打开链接

Java8新特性 : 
  1. 接口新增默认方法和静态方法
  2. Optional类
  3. Lambda表达式
  4. 方法引用
  5. Stream API - 函数式操作流元素集合
  6. Date/Time API
  7. 新API和工具
  8. Nashorn , JavaScript引擎

4 . 方法引用

方法引用的基本思想是 , 如果一个Lambda代表的只是"直接调用这个方法" , 那最好还是用名称来调用它 , 而不是去描述如何调用它 . 事实上 , 方法引用就是直接引用已有Java类或对象的方法或构造器 . 与Lambda联合使用 , 方法引用可以使语言的构造更紧凑简洁 , 减少亢余代码(方法引用类似于C语言中的函数指针)
    方法引用用法就是使用一对冒号:: , 目标引用放在分隔符::前 , 方法的名称放在后面 , 即ClassName :: methodName . 例如People :: getAge就是引用了People类中定义的方法getAge . 请记住 , 不需要括号 ,  因为你没有实际调用这个方法 .
    方法引用大致分为四类 : 
构造器引用
    语法是Class :: new . 这个构造器必须是无参构造
静态方法引用
    语法是Class :: staticMethod 这个方法接收一个Class类型的参数
无参成员方法引用
    语法是Class :: method 没有参数的方法
有参实例方法引用

语法是instance :: method 这个方法接收一个instance对应的Class类型的参数

代码Demo :
package com.xbz.java8.methodQuote;
​
import java.util.Collections;
import java.util.List;
​
/*** @title 方法引用Demo* @description* @author Xingbz* @createDate 2018/2/10* @version 1.0*/
public class MethodQuoteDemo {public static void main(String[] args){People p1 = People.create(People :: new);//构造器引用List<People> list = Collections.singletonList(p1);
​list.forEach(People :: print);//静态方法引用
​list.forEach(People :: repair);//无参成员方法引用
​list.forEach(p1 :: follow);//有参实例方法引用}
}

输出结果 :

print : com.xbz.java8.methodQuote.People@682a0b20
repair : com.xbz.java8.methodQuote.People@682a0b20
follow : com.xbz.java8.methodQuote.People@682a0b20

Java8新特性总结 - 4.方法引用相关推荐

  1. 【java8新特性】——默认方法(五)

    一.简介 默认方法是指接口的默认方法,它是java8的新特性之一.顾名思义,默认方法就是接口提供一个默认实现,且不强制实现类去覆写的方法.默认方法用default关键字来修饰. 默认方法可以解决的痛点 ...

  2. java8新特性_乐字节-Java8新特性-接口默认方法

    总概 JAVA8 已经发布很久,而且毫无疑问,java8是自java5(2004年发布)之后的最重要的版本.其中包括语言.编译器.库.工具和JVM等诸多方面的新特性. Java8 新特性列表如下: 接 ...

  3. JDK8新特性(四)之方法引用

    一.方法引用的介绍 import java.util.function.Consumer;public class Demo {public static void getMax(int[] arr) ...

  4. Java8新特性之Stream--collect方法

    collect方法 收集(collect) collect,收集,可以说是内容最繁多.功能最丰富的部分了.从字面上去理解,就是把一个流收集起来,最终可以是收集成一个值也可以收集成一个新的集合. col ...

  5. Java8新特性之Stream--Stream方法

    Stream方法 Stream主要有以下几种方法: 遍历/匹配(foreach/find/match)筛选(filter)聚合(max/min/count)映射(map/flatMap)归约(redu ...

  6. Java8新特性1:lambda表达式入门--由浅入深,从单发步枪迈向自动步枪

    本文主要参照<java8 in action>书中对lambda的讲解,来循序渐进的引入lambda表达式,了解我们为什么,以及怎么样初步学会使用lambda表达式,看完以后你会恍然大悟, ...

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

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

  8. 【java8新特性】——Optional详解(三)

    一.简介 Optional类是Java8为了解决null值判断问题,借鉴google guava类库的Optional类而引入的一个同名Optional类,使用Optional类可以避免显式的null ...

  9. 【java8新特性】——Stream API详解(二)

    一.简介 java8新添加了一个特性:流Stream.Stream让开发者能够以一种声明的方式处理数据源(集合.数组等),它专注于对数据源进行各种高效的聚合操作(aggregate operation ...

最新文章

  1. golang函数后的 {
  2. 2.2.2 MySQL基本功能与参数文件管理
  3. 企业级系统架构设计技术与互联网应用技术结合主题一 大规模并发性能问题探讨...
  4. es6 --- 对任意对象部署可遍历接口
  5. JavaScript玩转机器学习:模型转换
  6. 史上最通俗的《深入理解计算机网络》目录
  7. Airflow 中文文档:命令行界面
  8. 清空文件夹,或删除文件夹
  9. 百度近五年最年轻高管团队出炉,能否“翻盘”成功?
  10. fshc模块fsch2mcu_if理解
  11. mysql 覆盖式索引_【MySQL】性能优化之 覆盖索引
  12. 字符串、数组处理方法总结
  13. 宋森安——CHARLS中国健康与养老调查数据清洗(一)
  14. Android paint 效果研究
  15. android从九宫格全屏预览,仿微信朋友圈展示图片的九宫格图片展示控件,支持点击图片全屏预览大图...
  16. 普通高等学校毕业生就业工作暂行规定
  17. css3斜切加颜色,CSS斜切角
  18. 小程序 制作自定义弹层 添加弹层显示和隐藏动画 父组件与子组件(自定义组件)之间传值
  19. RHEL5/6 加载 DVD yum源
  20. 2019秋招c++个人面经集合(包含cvte,bigo,老虎,网易,拼夕夕等)

热门文章

  1. for语句与if语句嵌套的简单应用
  2. 关情纸尾-----Quartz2D-绘制富文本,绘制图片.
  3. NHibernate 3.3
  4. 安装Was liberty之步骤
  5. 基于Linux命令行终端的ftp客户端程序
  6. [网络编程] - MIME格式详细介绍[转]
  7. Echarts文字大小自适应,案例详解
  8. Vue「六」前端路由、vue-router
  9. 动手学深度学习(PyTorch实现)(二)--softmax与分类模型
  10. 汇编语言---输出“welcome to you!”