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匿名类和匿名函数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java通过动态规划设计股票买卖最佳时机

    Java通过动态规划设计股票买卖最佳时机

    动态规划可谓是大名鼎鼎,笔试面试中的高频考点,也是重点难点,动态规划类型题目灵活多变,难度系数也相对较高,往往我们做不好动态规划的题目就会与心仪的offer失之交臂,本篇文章我们就一起来研究一下动态规划设计股票买卖最佳时机
    2022-10-10
  • SpringMVC+MyBatis分页(最新)

    SpringMVC+MyBatis分页(最新)

    本篇文章主要介绍了SpringMVC+MyBatis分页,具有一定的参考价值,有兴趣的可以了解一下。
    2016-12-12
  • Java简单计时的实现案例(可以用来限时循环)

    Java简单计时的实现案例(可以用来限时循环)

    这篇文章主要介绍了Java简单计时的实现案例(可以用来限时循环),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-08-08
  • 从Spring迁移到Spring Boot的方法步骤

    从Spring迁移到Spring Boot的方法步骤

    这篇文章主要介绍了从Spring迁移到Spring Boot的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • 简介Java的Spring框架的体系结构以及安装配置

    简介Java的Spring框架的体系结构以及安装配置

    这篇文章主要介绍了Java的Spring框架的体系结构以及安装配置,Spring框架是Java的SSH三大web开发框架之一,需要的朋友可以参考下
    2015-12-12
  • Java实现在线SQL编程最新完整版

    Java实现在线SQL编程最新完整版

    这篇文章主要介绍了Java实现在线SQL编程,在使用JDBC来进行数据库的操作,在使用时由于对其方法并不是全部了解,所以需要边看源码边改善功能,感兴趣的朋友跟随小编一起看看吧
    2022-06-06
  • ShardingSphere结合MySQL实现分库分表的项目实践

    ShardingSphere结合MySQL实现分库分表的项目实践

    在实际开发中,如果表的数据过大我们需要把一张表拆分成多张表,本文主要介绍了使用ShardingSphere实现MySQL分库分表,具有一定的参考价值,感兴趣的可以了解一下
    2024-03-03
  • macOS下Spring Boot开发环境搭建教程

    macOS下Spring Boot开发环境搭建教程

    这篇文章主要为大家详细介绍了macOS下Spring Boot开发环境搭建教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • java.lang.NullPointerException 如何处理空指针异常的实现

    java.lang.NullPointerException 如何处理空指针异常的实现

    这篇文章主要介绍了java.lang.NullPointerException 如何处理空指针异常的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • 详解SpringBoot项目的创建与单元测试

    详解SpringBoot项目的创建与单元测试

    这篇文章主要介绍了详解SpringBoot项目的创建与单元测试,帮助大家更好的理解和学习使用SpringBoot,感兴趣的朋友可以了解下
    2021-03-03

最新评论