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

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)







分享到:
评论

相关推荐

    Java 8特性教程

    接下来,我们将详细解读Java 8中的几个核心新特性,并通过实例加以说明。 1. 默认接口方法(Default Interface Methods) Java 8允许开发者在接口中定义具体的方法实现,而不是仅仅局限于抽象方法。通过使用default...

    Java8新特性笔记

    这篇笔记将详细解析Java8的核心新特性,帮助开发者深入理解并掌握这些改变。 1. **函数式编程引入**:Java8引入了Lambda表达式,这是对函数式编程的一种支持。Lambda允许我们将函数作为参数传递给方法,或者作为...

    java8新特性总结自用

    ### Java 8 新特性详解 #### 一、接口的默认方法(Default Methods for Interfaces) Java 8 引入了一个重要的概念——默认方法,默认方法允许在接口中定义具体的方法实现,而不需要强制所有实现该接口的类都重写...

    java8u291.zip

    5. **方法引荐**:方法引荐(Method References)是Lambda表达式的补充,可以引用一个类的方法或者实例的方法,作为Lambda表达式的实现。 6. **新的类型接口**:如Optional,它是一个容器对象,可能包含或者不包含...

    java8.pdf详细说明java8的使用说明

    Java 8是Java语言的一次重要更新,它引入了大量新特性以及API的改进,旨在提高Java开发者的生产力。以下是对Java 8新特性的详细知识点: 1. 默认接口方法(Default Interface Methods): Java 8允许在接口中使用...

    Java Platform SE 8 jdk8 API文档 CHM格式

    Java Platform Standard Edition 8(Java SE 8)是Java编程语言的一个重要版本,它引入了大量新特性,改进了已有的API,并优化了性能。这个CHM格式的API文档是开发者离线查阅Java SE 8 API的重要参考资料。下面将...

    java8_api.zip

    此外,Java 8还引入了新的方法引用(Method References)和构造器引用,允许开发者直接引用类的方法或构造器,进一步强化了lambda表达式的使用场景。`Optional`类也是一个重要的新特性,用于避免空指针异常,提高...

    Java 8 源码

    6. Method References:除了Lambda表达式,Java 8还引入了方法引用,它允许直接引用已有方法作为Lambda表达式。这在处理函数式接口时特别有用,如`Arrays.sort(list, Comparator.comparing(User::getName))`。 7. ...

    JAVA学习视频之Java8面向对象编程(1)

    3. **方法引用(Method References)**:除了lambda表达式,Java 8还提供了方法引用,可以直接引用现有类或对象的方法,代替lambda表达式的代码块,使代码更简洁。 4. **Stream API**:Stream API是Java 8的重要...

    corejava8源码

    本资料集合了Core Java 8的源码,旨在帮助开发者深入理解Java语言的基础和高级特性,以及其背后的实现原理。 一、接口与默认方法(Default Methods) 在Java 8中,接口引入了默认方法(Default Methods),允许接口...

    Java JDK 8学习笔记.pdf

    由于Java是一种广泛使用的编程语言,JDK 8的学习不仅对于理解Java的新特性至关重要,而且对于编程范式的理解和应用也有很大的帮助。特别是对于面向函数编程(FP)的支持,使得开发者能够利用函数式编程的简洁性来...

    Java学习 常用命令 常用单词

    二、Java 8中的新特性 * Lambda表达式语法:参数 -> 表达式或代码块,包括参数类型、Lambda体、方法引用等。 * Stream API:包括Stream的基本操作、forEach接口函数、Optional类等。 * Optional类:包括创建...

    java-jdk1.8-jdk-8u181-linux-x64.zip

    - ** Method References**:允许直接引用类或对象的方法,作为函数接口的实现。 - ** Default Methods**:接口中可以定义具有默认实现的方法,增强了接口的功能。 - ** Type Inference for Generic Instance ...

    javaJDK1.8中文API

    Java JDK 1.8中文API是Java开发人员的重要参考资料,它包含了Java 8的主要特性和接口的详细描述,便于开发者理解和使用。以下是对这个API的一些关键知识点的详细说明: 1. **Lambda表达式**:Java 8引入了Lambda...

    Java in easy steps Covers Java 9 6th Edition

    《Java in easy steps》涵盖了Java 9,并特别针对Java 8的新特性进行了详细讲解。其中,“Lambda”作为核心知识点之一,代表了Java语言在现代编程范式中的一大步。 Lambda表达式是一种可以传递给方法或存储在变量中...

    Java1.8帮助文档中文版

    另一个显著特性是方法引用(Method References)。方法引用允许开发者直接引用一个类或对象的方法,而无需编写lambda表达式。这使得代码更加简洁,同时也提高了可读性。 Java 8还引入了Stream API,这是一个用于...

    java APIchm中文版

    6. **Method References**:除了lambda表达式,Java 8还引入了方法引用,它是一种更简洁的语法,可以直接引用一个已有方法,而不必在lambda中重新定义。 7. **默认方法**:在接口中,Java 8允许添加带有实现的默认...

    中文API(Java 8).zip

    6. **Method References**:除了Lambda表达式,Java 8还引入了方法引用,可以直接引用已存在的方法,而无需手动编写Lambda表达式的主体。这对于已有的方法或构造器,尤其是与函数式接口兼容的方法,提供了更简洁的...

    java jdk 1.8 api 中文英文版

    Stream API是Java 8中的新特性,提供了一种序列处理数据的方式,支持集合操作的并行化。通过`stream()`方法,我们可以对集合进行操作,如过滤、映射、查找、排序等。这使得处理大量数据变得更加高效且易于理解。 3...

    Harnessing the Power of Java 8 Lambda Expressions

    除了Lambda表达式,Java 8还引入了方法引用(Method References)和构造器引用(Constructor References)的概念。方法引用允许我们使用现有的方法名称替代Lambda表达式的实现。构造器引用则用于通过构造函数创建...

Global site tag (gtag.js) - Google Analytics