JAVA8 新特性 边学边记(二) Method References_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > JAVA8 新特性 边学边记(二) Method References

JAVA8 新特性 边学边记(二) Method References

 2014/4/17 15:25:29  第一次认识梦想  程序员俱乐部  我要评论(0)
  • 摘要:MethodReferencesarecompact,easy-to-readlambdaexpressionsformethodsthatalreadyhaveaname.MethodReferences是轻便易读的代表已经存在的方法的lambda表达式。在java8种我们利用lambda式去生成一个类似匿名内部类的instance,而lambda式实际上就是一个方法的定义。这时候,如果我们不是在lambda式里面自己写方法的定义,而是引用一个已经存在的方法的时候
  • 标签:新特性 Java
Method References are compact, easy-to-read lambda expressions for methods that already have a name.
Method References是轻便易读的代表已经存在的方法的lambda表达式

在java8种我们利用lambda式去生成一个类似匿名内部类的instance,而lambda式实际上就是一个方法的定义。这时候,如果我们不是在lambda式里面自己写方法的定义,而是引用一个已经存在的方法的时候,就可以用java8的新特性之一,Method References(方法参照?)。

比如下面这段使用Method References以前的代码(来自oracle官方文档):
这是一段通过生日比较两个人年龄大小来排序的代码。
class="java" name="code">
Arrays.sort(rosterAsArray,
    (Person a, Person b) -> {
        return a.getBirthday().compareTo(b.getBirthday());
    }
);


如果Person这个类中已经有了一个方法来比较两个人的年龄大小的话,可以写成下面这样:
Arrays.sort(rosterAsArray,
    (a, b) -> Person.compareByAge(a, b)
);


更进一步:
Arrays.sort(rosterAsArray, Person::compareByAge);


---------------------------------------------------------------------------------
Method References的种类:
1.Reference to a static method - 静态方法引用
2.Reference to an instance method of a particular object - 特定对象实例方法引用
3.Reference to an instance method of an arbitrary object of a particular type - 特定TYPE 任意对象实例引用
4.Reference to a constructor - 构造方法引用

据Oracle文档说,JRE将会自动推断方法的参数列表。
(原文:The JRE infers the method type arguments)







上一篇: 开源闭源项目代码质量对比 下一篇: 没有下一篇了!
发表评论
用户名: 匿名