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

Method Reference在JDK 8中使用的四个场景

时间:2015-03-16 14:12:59      阅读:111      评论:0      收藏:0      [点我收藏+]

标签:

学习过JDK 8的都知道,在JDK 8中两个重要的特性就是Lambda Expression和Stream API.

Lambda Expression可以使用在任何需要函数式接口的地方。(只包含一个抽象方法的接口,在JDK 8中,接口可以有默认实现)

而为了进一步简化Lambda Expression的使用。 JDK 8还设计了一层语法糖,我们称之为Method Reference.

它使用两个冒号表示::

下面我来介绍这四个场景。

第一种,

当你的Lambda Expression的实现调用了某个类的静态方法。

 

技术分享

第二种,

当你的Lambda Expression的实现调用了某个类的实例方法。

技术分享

需要注意的是,这里的rest代表的是可变参数,所以你可以有0至多个参数。

第三种,

当你的Lamdba Expression的实现调用了某一已经存在的对象的实例方法。这里最通常的例子是System.out.println.

技术分享

例如,

如果有以下的Lambda Expression:

(input)->System.out.println(input)

可以变成:

System.out::println

第四种情况,可以看做是第一种的变种。那就是当Lambda Expression的实现是一个构造函数的时候。把构造函数理解为这个类的静态方法(方法名是new)

所以如果有以下的Lambda Expression:

(name)->new Person(name)

可以变成:

Person::new

 

Method Reference在JDK 8中使用的四个场景

标签:

原文地址:http://www.cnblogs.com/cuteben/p/4341526.html

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