美文网首页
“方法引用” 学习笔记

“方法引用” 学习笔记

作者: freeseawind | 来源:发表于2018-08-05 14:20 被阅读0次
开发环境
  • eclipse 4.7.3a
  • jdk 9
前言

        通常使用lambda表达式来创建匿名方法(或匿名内部类)。然而,有时候我们已存在一个可用的方法,我们系统直接访问类或者实例的已经存在的方法或者构造方法。Java 8引入了一种新语言特性——方法引用,简写lambda表达式中已经存在的方法。

方法的引用的方式
描述 例子
引用静态方法 ContainingClass::staticMethodName
引用对象的某个实例方法 containingObject::instanceMethodName
引用类型对象的方法 ContainingType::methodName
引用构造方法 ClassName::new

注意方法引用是一个Lambda表达式,其中方法引用的操作符是 "::"。

例子

需求:在公司中,我们通常会按员工的生日日期进行排序,以便发放生日礼物

我们先来看下使用Lambda表达式的例子

Arrays.sort(rosterAsArray,
    (Person a, Person b) -> {
        return a.getBirthday().compareTo(b.getBirthday());
    }
);

使用静态方法的例子

public static int compareByStaticMethod(Person a, Person b)
{
      return a.birthday.compareTo(b.birthday);
 }

Arrays.sort(rosterAsArray, MethodReference::compareByStaticMethod);

使用实例化对象方法的例子

public int compareByInstanceMethod(Person a, Person b)
{
      return a.birthday.compareTo(b.birthday);
 }

Object obj = new XX();

Arrays.sort(rosterAsArray, obj ::compareByInstanceMethod);

使用类型对象的方法

String[] stringArray = { "Barbara", "James", "Mary", "John", "Patricia", "Robert", "Michael", "Linda" };

Arrays.sort(stringArray, String::compareTo);
  
List<Person> list = new ArrayList<>();
 
list.stream().anyMatch(Person::isEmpty);

引用构造方法的例子

public static HashSet<String> asynBlock(Callable<HashSet<String>> callable) throws Exception
{
     return callable.call();
}

//
asynBlock(HashSet::new);

Github工程地址

相关文章

  • “方法引用” 学习笔记

    开发环境 eclipse 4.7.3a jdk 9 前言 通常使用lambda表达式来创建匿名方法(或匿名内部类)...

  • 02.kotlin笔记2

    本篇是kotlin学习的第二篇,继续上篇的学习笔记 :: 表示引用了一个方法。 如果是引用了本类中的方法, :: ...

  • cmake学习笔记4-cmake链接外部库

    引用 学习笔记,讲得不错

  • 方法引用

    方法引用(Method References) 声明:java8新特性系列为个人学习笔记,参考地址点击这里,侵删!...

  • Markdown学习笔记

    Markdown的学习笔记 引用 普通引用在被引用的语句前添加>符号。> 被引用的语句 被引用的语句 嵌套引用: ...

  • 一千行mysql学习笔记

    原文引用:一千行MySQL学习笔记

  • 踩坑合集

    1、pagehelper 循环引用问题 解决方法: 方法一 方法二Pagehelper踩坑笔记[https://b...

  • c++学习文档-更新于2020年12月05日

    c++学习文档汇总 [TOC] c++ primer部分 c++学习笔记 引用(左值引用) int &ref...

  • HTML入门

    网页布局:div布局与CSS控制 那个学习视频是从布局开始讲起的,那我就从这里开始记笔记吧 html引用css方法...

  • 2021-05-16 《Java 核心技术36讲》学习记录四

    简述 此文是对 第4讲 | 强引用、软引用、弱引用、幻象引用有什么区别? 的学习 一些知识点/笔记点: Java ...

网友评论

      本文标题:“方法引用” 学习笔记

      本文链接:https://www.haomeiwen.com/subject/jegqvftx.html