java8之方法引用


  1. 方法引用 的使用情景

lambda表达式 要实现的功能, 现有方法已经实现了, 此时可以使用方法引用, 即引用现有方法;

  1. 方法引用 的约束
    被引用的现有方法的参数列表必须与lambda表达式对应的函数式接口的方法的参数列表保持一致, 返回类型也要保持一致;

  2. 方法引用 的语法格式
    使用操作符 :: 将 对象或类的名称 与 方法名 分隔开来;
    主要有3种格式:

    • ObjectName::InstanceMethodName (对象::实例方法)
    • ClassName::StaticMethodName (类::静态方法)
    • ClassName::InstanceMethodName (类::实例方法)

注意: 前两种格式比较好理解, 最后一种格式 ClassName::InstanceMethodName 可以理解为: 传递给该方法引用(即lambda表达式)的第一个参数为该类的实例对象, 其余参数为该实例方法的参数;

例如:


lambda to method reference
  1. 方法引用 的两种特别情况
  • ClassName::new(构造器引用)
    使用构造器引用必须确定构造器的参数列表与对应的函数式接口的方法的参数列表保持一致, 函数式接口的方法的返回值类型是构造器所在类的类型;
    例子:

    构造器引用

  • TypeName[]::new(数组引用)
    与 构造器引用 相似, 例子如下:

    数组引用

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容