`
第一次认识梦想
  • 浏览: 2329 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

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

阅读更多
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官方文档):
这是一段通过生日比较两个人年龄大小来排序的代码。
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)







分享到:
评论

相关推荐

    Final References java 源码

    Final References java 源码

    Android代码-java8-tutorial

    Backed by short and simple code samples you'll learn how to use default interface methods, lambda expressions, method references and repeatable annotations. At the end of the article you'll be ...

    SSD8 Java CORBA References CORBA的一些参考资料和课件

    SSD8 Java CORBA References 网络分布式关于CORBA的一些参考资料和课件 网络收集的 仅供参考!

    Modern Java Recipes

    Modern Java Recipes: Simple Solutions to Difficult Problems in Java 8 and 9 by Ken Kousen English | 11 Aug. 2017 | ISBN: 149197317X | ASIN: B074R6B13N | 322 Pages | AZW3 | 1.35 MB The introduction of...

    Learning.Reactive.Programming.With.Java.8

    It continues by introducing the new Java 8 syntax features, such as lambdas and function references, and some functional programming basics. From this point on, the book focuses on RxJava in depth. ...

    Modern Java Recipes(O'Reilly,2017)

    The introduction of functional programming concepts in Java SE 8 was a drastic change for this venerable object-oriented language. Lambda expressions, method references, and streams fundamentally ...

    modern java recipes(英文高清版-带书签)

    Recipes cover: The basics of lambda expressions and method references Interfaces in the java.util.function package Stream operations for transforming and filtering data Comparators and Collectors for...

    java api最新7.0

    java.awt.geom 提供用于在与二维几何形状相关的对象上定义和执行操作的 Java 2D 类。 java.awt.im 提供输入方法框架所需的类和接口。 java.awt.im.spi 提供启用可以与 Java 运行时环境一起使用的输入方法开发的接口...

    深入java虚拟机(inside the java virtual machine)

    java虚拟机的运行机理的详细介绍 Inside the Java Virtual Machine Bill Venners $39.95 0-07-913248-0 Inside the Java Virtual Machine Acknowledgments Introduction Part One: Java's Architecture 1 ...

    java8集合源码-Java-8:Java8的练习实例和笔记

    java8集合源码Lambda 表达式练习 - Koushik 在更新此文件的同时,也同时更新 Java 8 Notes Refer package for lambda exercises: com.unit1practise. - com.unit1practise.java8 : Implementing sample behavior to ...

    References.rar

    References.rar

    Java访问c#开发的webservice

    开发webservice可以使用java、也可以使用c#。由于国内大多数计算机安装的是Windows系列操作系统,所以使用c#开发webservice不仅开发效率高,而且部署和维护很方便。 本文详细介绍了java如何调用c#开发的webservice。...

    references.zip

    references/detection/engine.py , references/detection/utils.py 和 references/ detection/transforms.py

    JAVA_API1.6文档(中文)

    java.awt.geom 提供用于在与二维几何形状相关的对象上定义和执行操作的 Java 2D 类。 java.awt.im 提供输入方法框架所需的类和接口。 java.awt.im.spi 提供启用可以与 Java 运行时环境一起使用的输入方法开发的...

    java8stream源码-Java8:Java8示例

    java8流源码学习笔记:参考 Function as thing 函数可以带函数 函数可以返回一个函数 函数组合函数和另一个函数的组合,而不关心函数这是抽象你不能说是用更小的函数构建 设计功能一直向下 类型不是类 有效输入集 ...

    hibernate4.3.5references chm文档

    hibernate4.3.5references chm文档

    Java 1.6 API 中文 New

    java.awt.geom 提供用于在与二维几何形状相关的对象上定义和执行操作的 Java 2D 类。 java.awt.im 提供输入方法框架所需的类和接口。 java.awt.im.spi 提供启用可以与 Java 运行时环境一起使用的输入方法开发的接口...

    Java 8 Lambdas

    Method References 59 Element Ordering 60 Enter the Collector 62 Into Other Collections 62 To Values 63 Partitioning the Data 64 Grouping the Data 65 Strings 66 Composing Collectors 67 Refactoring and ...

    C# to Java 代码转换工具

    一个很强大的工具, 能将c#代码片段、文件甚至工程直接转换成java代码,并能彻底解决外部引用的DLL问题,最强的是支持c#工程的直接转换,生成的Java代码质量也很不错。软件已破解,去除了未注册版最多只能转换1000行的...

    Laravel开发-static-references-laravel

    Laravel开发-static-references-laravel Laravel应用程序的静态引用

Global site tag (gtag.js) - Google Analytics