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

Lambda 表达式的语法结构

Java 中的 Lambda 表达式的基本结构如下:

(参数列表) -> { 方法体 }

✅ 语法形式举例(从简单到复杂)

形式示例说明
无参数() -> System.out.println("Hi")没有参数,执行一个语句
一个参数x -> x * x一个参数可以省略括号
多个参数(a, b) -> a + b多个参数要加括号
有方法体(a, b) -> { int c = a + b; return c; }多条语句时需要大括号和 return

🔍 分解示例

示例 1:list.forEach(s -> System.out.println(s));

解析:

  • 参数:s

  • 方法体:System.out.println(s)

  • 等价于实现 Consumer<T> 接口中的 accept(T t) 方法。

相当于写了:

list.forEach(new Consumer<String>() {public void accept(String s) {System.out.println(s);}
});

 

示例 2:

(x, y) -> x + y

解析:

  • 参数列表是两个:x, y

  • 方法体是一个表达式:x + y

  • 用于实现 BiFunction<Integer, Integer, Integer> 接口中的 apply(x, y) 方法。

示例 3:

() -> 42

解析:

  • 无参数

  • 返回值为 42

  • 实现的是 Supplier<Integer> 接口中的 get() 方法

🧠 Lambda 与函数式接口的关系

Lambda 表达式必须用于函数式接口的上下文中(即接口中只允许一个抽象方法)。

@FunctionalInterface
interface MyFunction {int operate(int a, int b);
}

然后我们就可以这样写:       

MyFunction add = (a, b) -> a + b;
System.out.println(add.operate(3, 5));  // 输出 

相关文章:

  • 20250419将405的机芯由4LANE的LVDS OUT配置为8LANE的步骤
  • 怎么查看LLM Transformer 架构进行并行计算和设备映射
  • Python基础总结(七)之条件语句
  • 多线程和线程同步
  • Pandas取代Excel?
  • 交换排序——快速排序
  • opencv 图像的旋转
  • mysql的函数(第一期)
  • 简单线段树的讲解(一点点的心得体会)
  • 动态规划算法:状态压缩
  • 【python编程从入门到到实践】第二章 变量和简单的数据类型
  • Nginx 文件上传大小限制及 `client_max_body_size` 最大值详解
  • Linux 系统盘制作 | 引导加载器(GRUB 为例)| mount
  • 二叉树进阶 - 二叉搜索树
  • PDF转excel+json ,vue3+SpringBoot在线演示+附带源码
  • 宇树机器狗go2—slam建图(1)点云格式
  • MLLMs for TSAD ?
  • 单例模式:懒汉式的两种优化写法
  • 编译报错 宏 _IOC_SIZEBITS,而这个宏在编译时未定义
  • Bash 中的数学运算详解
  • 科普|一名肿瘤医生眼中的肺癌诊疗变化:从谈癌色变到与癌共存
  • 加力扩围支持消费品以旧换新,江苏要送出1800万元彩票
  • 特朗普叫停已许可的海上风电,机构将美国风电前景下调40%
  • 习近平接受“柬埔寨王国民族独立大项链级勋章”
  • 这颗“超级地球”真有生命?剑桥团队在系外行星K2-18b发现气体证据
  • 非盟特别会议聚焦美国关税政策,共商应对之法