当前位置: 首页 > news >正文

Lambda表达式的方法引用详解

Lambda表达式的方法引用详解


1. 方法引用的概念与作用
  • 定义:方法引用(Method Reference)是Lambda表达式的一种简化写法,允许直接通过方法名引用已有的方法。
  • 核心目的:减少冗余代码,提升可读性,尤其在Lambda仅调用一个现有方法时。
  • 语法符号:双冒号 ::

2. 方法引用的四种类型
2.1 静态方法引用
  • 语法类名::静态方法名
  • 适用场景:Lambda表达式调用某个类的静态方法。
  • 示例
    // Lambda写法
    Function<Integer, String> func1 = num -> String.valueOf(num);// 方法引用写法
    Function<Integer, String> func2 = String::valueOf;
    
//使用匿名内部类来实现
Function<Double, Long> function=new Function<Double,Long>(){@Overridepublic Long apply(Double aDouble) {return Math.round(aDouble);}};System.out.println(function.apply(2.2));
//使用Lambda表达式来实现Function<Double,Long> function1=(a)->Math.round(a);System.out.println(function1.apply(3.3));
//使用静态方法引用来实现Function<Double,Long> function3=Math::round;System.out.println(function3.apply(4.23));
2.2 实例方法引用(特定对象)
  • 语法对象::实例方法名
  • 适用场景:Lambda表达式调用某个已存在对象的实例方法。
  • 要求:函数式接口中抽象方法的返回值类型和形参列表 与 内部通过对象调用某个实例方法的返回值类型和形参列表 保持一致。
  • 示例
    String str = "Hello";// Lambda写法
    Supplier<Integer> supplier1 = () -> str.length();// 方法引用写法
    Supplier<Integer> supplier2 = str::length;
    
2.3 特殊方法引用(任意对象)
  • 语法类名::实例方法名
  • 适用场景:Lambda表达式的第一个参数作为方法调用者,其余参数作为方法参数。
  • 示例
    // Lambda写法
    BiPredicate<String, String> predicate1 = (s1, s2) -> s1.equals(s2);// 方法引用写法
    BiPredicate<String, String> predicate2 = String
http://www.xdnf.cn/news/639865.html

相关文章:

  • 在 Thonny 中打包 EXE
  • Python 内存管理机制详解:从分配到回收的全流程剖析
  • 考研政治资料分享 百度网盘
  • Linux架构篇、第五章_03gitlab的搭建
  • 程序代码模块化设计的架构方法论
  • ubuntu下nginx
  • 棒球比赛暗号百科·棒球1号位
  • HttpServletRequest 对象包含了哪些信息?
  • 【计算机CPU架构】x86架构简介
  • 简单数学板子和例题
  • 如何将ChatGPT添加到WordPress(新手指南)
  • NTFS0x90属性和0xa0属性和0xb0属性的一一对应关系是index_entry中的index_node中VCN和runlist和bitmap
  • 创建dummy
  • 基于diffusion的图像编辑与inpaint
  • pycharm管理项目python环境
  • TCP四次挥手,网络连接关闭的艺术
  • 【医学影像 AI】使用 PyTorch 和 MedicalTorch 实现脊髓灰质分割
  • 一步一图学信号可视化:用Python绘制多频率信号对比图
  • 数据结构 栈的详细解析
  • OC语言学习——Foundation框架回顾及考核补缺
  • JVM虚拟机
  • 在vue中重复组件导入简化方案
  • 2025年5月25日第一轮
  • 数据结构之图结构
  • vllm 2080TI ubuntu环境安装
  • PySide6 GUI 学习笔记——常用类及控件使用方法(常用类图标QIcon)
  • 【大模型应用开发】Qwen2.5-VL-3B识别视频
  • boost之preprocessor
  • 人工智能(AI)技术包括哪些技术
  • TCP 协议的相关特性