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

Java:JDK8 新特性:Lambda表达式

文章目录

  • Lambda
  • 使用匿名内部类
    • 分号
  • 函数式匿名内部类
  • 函数式接口:
    • 代码
  • 进一步简化Lambda表达式的写法
  • 代码

Lambda

Lambda表达式是JDK8开始新增的一种语法形式,用于简化匿名内部类的写法
注意:
Lambda表达式只是简化函数式接口的匿名内部类。(不是简化所有的匿名内部类)
函数式接口:首先是接口,其次接口内部有且只有一个抽象方法。

在这里插入图片描述

  • 匿名内部类 : 便捷创建子类对象,abstract类的子类对象。

使用匿名内部类

在这里插入图片描述

分号

匿名内部类 :有分号
Lambda表达式:没有分号

函数式匿名内部类

注意:
Lambda表达式只是简化函数式接口的匿名内部类。(不是简化所有的匿名内部类)

函数式接口:

  1. 首先是接口,其次接口内部有且只有一个抽象方法。
  2. 有==@FunctionalInterface 注解==的接口一定是函数式接口(大部分函数式接口都有该注解)

代码

  • 下面Animal不是函数式匿名内部类
    在这里插入图片描述
  • Swimming是接口式匿名内部类
    简写前:
    在这里插入图片描述
    Lambda表达式简化后:
    在这里插入图片描述

进一步简化Lambda表达式的写法

在这里插入图片描述

代码

package com.zhang.d6_lambda;

/**
 * @Author: ggdpzhk
 * @CreateTime: 2025-03-21
 */
public class LambdaTest1 {
    public static void main(String[] args) {
       /* Animal animal = new Animal() {
            @Override
            public void run() {
                System.out.println("狗跑得很快");
            }
        };

        //Animal animal = () -> {System.out.println("狗跑得很快");};//不是函数式接口的匿名内部类 Animal是个abstract类,不是接口
        animal.run();*/
/*


        Swimming sm = new Swimming() {
            @Override
            public void swim() {
                System.out.println("小狗狗刨很快~~");
            }
        };//上面只是new了一个对象,重写了方法。但是如果不调用swim(),是不会输出狗刨的
*/
        Swimming sm = () -> System.out.println("小狗狗刨很快~~");
        sm.swim();
    }
}

abstract class Animal{
    public abstract void run();
}
interface Swimming{
    void swim();
}

相关文章:

  • Vulnhub-Thales通关攻略
  • 第30周Java分布式入门 ThreadLocal
  • 无法打开... .exe进行写入 解决方法
  • vue中defineModel简化defineProps和defineEmits的用法
  • KofamKOALA:KEGG本地化注释
  • 无线安灯按钮盒汽车零部件工厂的故障告警与人员调度专家
  • 【干货,实战经验】nginx缓存问题
  • 程序员英语口语练习笔记
  • python dict转换成json格式
  • 深入解析Flink Kafka Connector的分布式流数据采集架构与底层实现
  • 2025最新版Ubuntu Server版本Ubuntu 24.04.2 LTS下载与安装-详细教程,细致到每一步都有说明
  • SAP 获取RFC的WSDL文件
  • react项目中当组件渲染的时候如何执行接口
  • 侯捷 C++ 课程学习笔记:现代 C++ 中的移动语义与完美转发深度解析
  • SQLark导出功能详解|轻松管理数据库数据与结构
  • 3.24[Q]Linux
  • 【MySQL】索引 事务
  • 【AI】NLP
  • [项目]基于FreeRTOS的STM32四轴飞行器: 十二.角速度加速度滤波
  • 《似锦》:曹兴昱—残暴和孝顺并不冲突家庭成长环境分析以命抵命逻辑悖论
  • 用帝国做的网站只收录首页/百度手机助手下载2021新版
  • 扁平化网站设计趋势/网络推广怎么找客户
  • 有路由器做网站/app拉新任务平台
  • 做期货浏览哪些网站/推荐几个靠谱的网站
  • 户外做旅游网站/平面设计主要做什么
  • dede58织梦模板/河南seo关键词排名优化