Lambda表达式

简介: Lambda表达式是JDK8后的一种新语法形式 Lambda表达式只能简化函数式接口的匿名内部类的写法形式 演示:先创建应该抽象类 使用Lambda表达式抽象简化匿名内部类,转换类型必须是接口 把Animal类改成接口 此时已经编译正常,并且对对象a进行了简化 首先必须是接口,其次接口中只能有一个抽象方法函数式接口,即适用于函数式编程场景的接口。而Java中的函数式编程体现就是 Lambda,所以函数式接口就是可以适用于Lambda使用的接口总结有时我们需要在程序的某处使用

 目录

前言

一、Lambda表达式简化格式

1.简化格式

2.目标类型必须是接口

3.进一步简化

二、什么是函数接口

1.概念

2.@FunctionalInterface注解

总结


前言

Lambda表达式是JDK8后的一种新语法形式


一、Lambda表达式简化格式

1.简化格式

image.gif

2.目标类型必须是接口

Lambda表达式只能简化函数式接口的匿名内部类的写法形式

演示:先创建应该抽象类

abstract class Animal {
    public abstract void run();
}

image.gif

使用Lambda表达式抽象简化匿名内部类,转换类型必须是接口

image.gif

把Animal类改成接口

interface Animal {
    public abstract void run();
}

image.gif

image.gif

此时已经编译正常,并且对对象a进行了简化

3.进一步简化

public class Test {
    public static void main(String[] args) {
    Animal a = ()->{
            System.out.println("狗四条腿跑");
        };
        go(a);
        System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
        go(()->{
            System.out.println("狗四条腿跑");
        });
    }
    public static void go(Animal animal) {
        System.out.println("动物开始跑");
        animal.run();
        System.out.println("动物不跑了");
    }
}

image.gif

image.gif

image.gif

二、什么是函数接口

1.概念

首先必须是接口,其次接口中只能有一个抽象方法

函数式接口,即适用于函数式编程场景的接口。而Java中的函数式编程体现就是 Lambda,所以函数式接口就是可以适用于Lambda使用的接口

2.@FunctionalInterface注解

@FunctionalInterface //加上此注解就只能是函数式接口,里面只能有一哥抽象方法
interface Animal {
    public abstract void run();
}

image.gif


总结

有时我们需要在程序的某处使用一次某个函数,在这时使用lambda函数更加的方便也便于理解。

目录
相关文章
|
6月前
|
人工智能 数据可视化 机器人
2026年零技术OpenClaw(Clawdbot)安装集成QQ机器人保姆级教程
2026年,OpenClaw(原Clawdbot,曾用名Moltbot)凭借“开源可控、插件化拓展、自然语言驱动”的核心优势,已成为AI自动化办公与社交场景交互的核心工具,尤其在QQ生态中,能够实现QQ消息自动回复、指令解析执行、多场景任务自动化、群聊/频道管理等功能,被广大个人用户与轻量团队称为“高效AI交互助手”。相较于传统QQ机器人,OpenClaw无需本地部署、无需手动编写复杂代码,依托阿里云轻量应用服务器的一键部署能力,可实现7×24小时稳定运行,同时支持对接阿里云百炼大模型,解锁更强的自然语言理解与任务执行能力,大幅降低QQ机器人的部署与使用门槛。
1937 1
|
编解码 应用服务中间件 nginx
DemuxException: type = CodecUnsupported, info = Flv: Unsupported codec in video frame: 2
DemuxException: type = CodecUnsupported, info = Flv: Unsupported codec in video frame: 2
1651 0
|
SQL 关系型数据库 MySQL
MySQL 窗口函数详解:分析性查询的强大工具
MySQL 窗口函数从 8.0 版本开始支持,提供了一种灵活的方式处理 SQL 查询中的数据。无需分组即可对行集进行分析,常用于计算排名、累计和、移动平均值等。基本语法包括 `function_name([arguments]) OVER ([PARTITION BY columns] [ORDER BY columns] [frame_clause])`,常见函数有 `ROW_NUMBER()`, `RANK()`, `DENSE_RANK()`, `SUM()`, `AVG()` 等。窗口框架定义了计算聚合值时应包含的行。适用于复杂数据操作和分析报告。
862 11
|
运维 容灾 关系型数据库
MySQL高可用方案--Xenon全解
MySQL高可用方案--Xenon全解
|
vr&ar Python
物理电学应用实践
物理电学应用实践
470 0
|
人工智能 Java Android开发
全面了解CPU Profiler:解读CPU性能分析工具的核心功能与用法
**==Traceview==** 是一个用于分析应用程序性能的工具,用来分析函数调用过程。 **==CPU Profiler==** 是 集成在Android Studio 3.2版本之后的Android Profiler工具当中,实时记录展示 App cpu消耗,用来替代Traceview。
1655 3
|
算法 数据安全/隐私保护
【密码学】一文读懂SHA-1
SHA-1(Secure Hash Algorithm 1)是一种密码散列函数,美国国家安全局设计,并由美国国家标准技术研究所(NIST)发布为联邦资料处理标准(FIPS)。SHA-1可以生成一个被称为消息摘要的160位(20字节)散列值,散列值通常的呈现形式为40个十六进制数。
2381 1
【密码学】一文读懂SHA-1
|
消息中间件 资源调度 分布式计算
任务调度系统就该这么设计(万能通用),稳的一批! 下
任务调度系统就该这么设计(万能通用),稳的一批! 下
|
网络安全 数据安全/隐私保护 数据中心
SAG-1000配置和智能接入网关的高级使用|学习笔记
快速学习SAG-1000配置和智能接入网关的高级使用
SAG-1000配置和智能接入网关的高级使用|学习笔记