Java匿名类和匿名函数的概念和写法

 更新时间:2023年06月09日 09:28:35   作者:明月一壶酒  
匿名函数写法和匿名类写法的前提必须基于函数式接口匿名函数写法和匿名类写法其本质是同一个东西,只是简化写法不同使用Lambda表达式简写匿名函数时,可以同时省略实现类名、函数名,这篇文章主要介绍了Java匿名类和匿名函数的概念和写法,需要的朋友可以参考下

前言

Lambda流式操作是Java8中重要的特性,lambda表达式核心概念为 函数式接口::-> 等基本语法,可以大大减少代码量的编写,使代码更加优雅

  • 只有一个抽象函数的接口,就是函数式接口
  • :: 可以称之为域运算符,主要是用来获取方法
  • -> 的语法为 (变量或参数)->{代码体},是匿名函数的写法。也叫变量和代码的分隔符
  • 当只获取一个方法属性的时候 :: 和 -> 可以通用

介绍

接口:

  • 接口可以定义在另一个类的内部
  • 接口中的方法都是抽象方法
  • 接口中的常量都是静态常量

类:

  • 类可以定义在另一个类的内部
  • 也可以定义为内部静态类,使用 static 关键字
  • 还可以定义为局部内部类,定义在方法中

一、什么是Lambda表达式?

lambda表达式是为了简写代码的写法

二、什么是函数式接口?

        只有一个抽象方法的接口就是函数式接口

//1.定义一个函数式接口。只有一个抽象方法的接口就是函数式接口
interface ILike{
    void testLambda();
}

三、什么是匿名内部类?

  • 没有类名
  • 必须借助接口或父类
  • 通过实例化函数式接口就可以完成匿名内部类实现此接口并重写方法
//5.匿名内部类,没有类名称,必须借助接口
like = new ILike() {
    @Override
    public void testLambda() {
        System.out.println("i like lambda4");
    }
};
like.testLambda();

四、用 Lambda 简化匿名内部类的写法

  • 匿名内部类是为了省去类名的写法
  • Lambda 简化写法不但可以省去类名,还可以省去接口名和函数名。因为只有一个抽象方法,可以直接实现并指向这个抽象方法和方法体
//6.用lambda简化,因为接口中只有一个函数,所以可以直接省略实例化的接口名和函数名
like = () -> {
    System.out.println("i like lambda5");
};
like.testLambda();

结论

匿名函数写法和匿名类写法的前提必须基于函数式接口匿名函数写法和匿名类写法其本质是同一个东西,只是简化写法不同使用Lambda表达式简写匿名函数时,可以同时省略实现类名、函数名。除此外也可以使用传统写法

到此这篇关于Java匿名类和匿名函数的概念和写法的文章就介绍到这了,更多相关java匿名类和匿名函数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • eclipse maven maven-archetype-webapp 创建失败问题解决

    eclipse maven maven-archetype-webapp 创建失败问题解决

    这篇文章主要介绍了eclipse maven maven-archetype-webapp 创建失败问题解决的相关资料,需要的朋友可以参考下
    2016-12-12
  • Java监听器的作用及用法代码示例

    Java监听器的作用及用法代码示例

    这篇文章主要介绍了Java监听器的作用及用法代码示例,具有一定参考价值,需要的朋友可以了解下。
    2017-11-11
  • Java实现鼠标模拟与键盘映射

    Java实现鼠标模拟与键盘映射

    这篇文章主要为大家详细介绍了Java实现鼠标模拟与键盘映射,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-08-08
  • 详解Spring的StringUtils踩坑记录

    详解Spring的StringUtils踩坑记录

    这篇文章主要介绍了详解Spring的StringUtils踩坑记录,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • Spring Boot接收单个String入参的解决方法

    Spring Boot接收单个String入参的解决方法

    这篇文章主要给大家介绍了关于Spring Boot接收单个String入参的解决方法,文中通过示例代码介绍的非常详细,对大家学习或者使用spring boot具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-11-11
  • 使用mybatis格式化查询出的日期

    使用mybatis格式化查询出的日期

    这篇文章主要介绍了使用mybatis格式化查询出的日期,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • SpringBoot自定义Starter及使用

    SpringBoot自定义Starter及使用

    这篇文章主要介绍了SpringBoot自定义Starter及使用,Starter是Spring Boot中的一个非常重要的概念,Starter相当于模块,它能将模块所需的依赖整合起来并对模块内的Bean根据环境进行自动配置,需要的朋友可以参考下
    2023-07-07
  • Java面试题冲刺第五天--基础篇2

    Java面试题冲刺第五天--基础篇2

    这篇文章主要为大家分享了最有价值的三道java面试题,涵盖内容全面,包括数据结构和算法相关的题目、经典面试编程题等,感兴趣的小伙伴们可以参考一下
    2021-07-07
  • Springboot使用Redis中ZSetOperations实现博客访问量

    Springboot使用Redis中ZSetOperations实现博客访问量

    在日常的网站使用中,经常会碰到页面的访问量,本文主要介绍了Springboot使用Redis中ZSetOperations实现博客访问量,具有一定的参考价值,感兴趣的可以了解一下
    2024-01-01
  • Java并发工具类Phaser详解

    Java并发工具类Phaser详解

    这篇文章主要介绍了Java并发工具类Phaser详解,Phaser(阶段协同器)是一个Java实现的并发工具类,用于协调多个线程的执行,它提供了一些方便的方法来管理多个阶段的执行,可以让程序员灵活地控制线程的执行顺序和阶段性的执行,需要的朋友可以参考下
    2023-11-11

最新评论