Lambda表达式

本文详细解析了Lambda表达式在JDK升级中的角色,作为简化代码的重要特性,它被用于替代复杂的匿名内部类,使代码更为简洁。文章通过具体示例展示了Lambda表达式的语法格式及其在函数参数传递中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、前言

JDK的升级目前有以下几个方面:
1、增加新的功能
2、修复Bug
3、性能优化
4、简化代码等
Lambda表达式就属于简化代码,用于简化匿名实现类,提供一种更加简洁的写法。Lambda表达式在Swift语言中称之为代码块,Lambda表达式可以认为是一种特殊的接口,该接口必须只有一个抽象方法。
@[TOC]二、语法格式

二、语法格式

(参数类型 参数名, 参数类型 参数名2... )->{
//code
};

小括号中的内容就是方法中的参数列表,其中参数类型是可以省略的,当参数个数是一个时,也可以省略小括号。
花括号中的内容就是方法中的方法体,当方法体中只有一行代码时可以省略{},当方法体中只有一行代码且需要返回值时可以省略掉return。

三、作用

  • 简化匿名实现类的书写
  • 作为函数中的参数来传递
    for example:
    两个参数一个返回值:
    Hello是一个很普通的接口,但接口中只能有一个抽象方法。
public interface Hello {
String sayHello(String name, String msg);
}

Main

public calss Main{
public static void main(String[] args) {
//将Lambda表达式赋值给一个接口,说明该表达式就是一种接口数据类型,只不过该接口只能有一个抽象数据方法。
//在JDK1.8中有个叫类型推断的东西,可以自动推断出类型的参数,由于Hello中只有一个抽象方法,知道方法名就知道参数列表了,从而就能推断出参数类型来。
Hello iHello = (String name,String msg) -> {
String hello = name + ":" + msg;
return hello;
};
//调用接口的方法
String content = iHello.sayHello("mengday", "happy new year everyone!");
System.out.println(content);
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值