码迷,mamicode.com
首页 > 编程语言 > 详细

Upgrading to Java 8——第二章 Method References(方法引用)

时间:2015-02-16 18:19:15      阅读:186      评论:0      收藏:0      [点我收藏+]

标签:

概述

 很多java 方法 会使用函数式接口作为参数。例如,java.util.Arrays类中的一个sort方法,就接受一个Comparator接口,它就是一个函数式接口,sort方法的签名如下:

public static T[] sort(T[] array, Comparator<? super T> comparator)

相对于传递一个Compartor的实例给sort方法,不如传递一个Lambda表达式。

进一步,我们可以传递一个方法引用来代替Lambda表达式,一个简单的方法引用就是一个类名或是实例名后面紧跟着::符号,最后面是方法名。

为什么想用方法引用?主要有两个原因:

  1.方法引用比Lambda表达式有更短的语义,因为方法引用不像Lambda表达式那样包含定义,方法引用的主体已经在别的地方定义了。

  2.实现代码复用。

你可以使用引用给静态方法,实例方法甚至构造方法,在java8 中使用心得标识符“::”,使类名/实例引用和方法名/构造方法名分开,类封装了引用实例但并没有函数式接口的实现。

方法引用的语法有下面几种定义:

ClassName::staticMethodName
ContainingType::instanceMethod
objectReference::methodName
ClassName::new

 

Upgrading to Java 8——第二章 Method References(方法引用)

标签:

原文地址:http://www.cnblogs.com/IcanFixIt/p/4290612.html

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