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

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.lryc.cn/news/2385946.html

相关文章:

  • echarts设置标线和最大值最小值
  • gcc编译构建流程
  • Maven 中央仓库操作指南
  • BUUCTF——RCE ME
  • clickhouse-1-特性及docker化安装
  • Docker核心笔记
  • log日志最佳实践
  • FreeRTOS--消息队列
  • 三步快速部署一个本地Windows/Linux大语言模型ChatGLM(环境配置+权重下载+运行)
  • 深入解析Spring Boot与Redis的缓存集成实践
  • leetcode105.从中序与前序遍历序列构造二叉树:前序定根与中序分治的递归重建术
  • Python二级考试
  • DeepSeek联网Google搜索引擎
  • 理论物理:为什么在极低温(接近绝对零度)时,经典理论失效?
  • 奈雪小程序任务脚本
  • 上海医日健集团物联网专利技术领跑智慧药房赛道
  • 基于Java+MySQL实现(Web)图书借阅管理系统
  • SAR ADC的功耗设计
  • PP-OCRv5
  • nginx的一些配置的意思
  • Agent模型微调
  • Android-OkHttp与Retrofit学习总结
  • 移远三款主流5G模块RM500U,RM520N,RG200U比较
  • C++引用以及和指针的区别
  • firfox 国外版和国内版本账号不互通问题处理
  • Linux基本指令篇 —— whoami指令
  • 用go从零构建写一个RPC(3)--异步调用+多路复用实现
  • 力扣395做题笔记
  • Python-numpy中常用的统计函数及转换函数
  • 【C语言干货】free细节