函数式接口相关知识点

news/2025/2/21 8:16:55/

这里写目录标题

  • 函数式接口
    • 简介以及注意点
    • 函数式接口作为方法的参数
    • 函数式接口作为方法参数
    • 常用的函数式接口
      • Supplier
        • 简介
        • 具体代码操作
      • Consumer
        • 简介
        • 具体代码演示
          • 演示1
          • 演示2
      • Predicate接口
        • 简介以及接口中的方法
        • text和negate方法
        • and和or方法
        • Function方法
          • 简介
          • 具体操作1
          • 具体操作2
  • 一级目录
    • 二级目录
    • 二级目录
    • 二级目录
  • 一级目录
    • 二级目录
    • 二级目录
    • 二级目录

函数式接口

简介以及注意点

在这里插入图片描述
在这里插入图片描述
lambda表达式赋值给了接口,足以说明,当接口是函数式接口时,lambda表达式就是该接口的一个实例化对象,所以这样就用多态的方式创建了一个接口对象,用该对象可以调用接口中的方法,lambda表达式可以视为接口的一个实现类,从而多态的原则进行编译运行,编译看左边,运行看右边。

函数式接口作为方法的参数

在这里插入图片描述
在这里插入图片描述
lambda表达式是函数式接口的一个实例化对象,参数与接口中抽象方法的参数对应,所以main方法里最后一句就是调用自定义方法并将lambda表达式当作参数传入,而自定义方法的形参是一个接口,所以效果相当于把接口实例化

函数式接口作为方法参数

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

常用的函数式接口

Supplier

(Java以及定义好的接口)

简介

在这里插入图片描述

具体代码操作

在这里插入图片描述
这里Supplier是一个函数式接口,是Java已经定义好了的函数式接口,只有一个无参抽象方法,get方法,他是一个生产型接口,定义时,规定他的类型,他的返回值也就同步被规定了,

Consumer

(Java以及定义好的接口)

简介

在这里插入图片描述

具体代码演示

演示1

在这里插入图片描述
自定义方法有两个参数,第一个是一个字符串,第二个是一个函数式接口,所以,main方法调用自定义函数的时候,参数位置,一个传入字符串,一个传入lambda表达式。所以自定义方法的形参列表仍旧遵循,函数体需要啥,就定义啥,不会因为接口作为参数而改变,接口也是参数的一员。

注意,自定义方法要用接口对象调用接口中的抽象方法以表示重写,接口中的非抽象方法无需重写。

演示2

在这里插入图片描述
这是接口中的第二个方法,该代码跟上面两行效果等效,因为该方法本质上还是调用了accep方法,所以抽象方法仍然被重写了

Predicate接口

(Java以及定义好的接口)

简介以及接口中的方法

在这里插入图片描述
注意 其中test方法是接口的抽象方法

text和negate方法

在这里插入图片描述
在这里插入图片描述
注意 这里先调用negate方法之后又调用test,是可以的
在这里插入图片描述

and和or方法

在这里插入图片描述
这是and方法,注意,and方法的底层还是调用了test方法,所以符合接口的原则
格式 第一个接口参数.and(第二个接口参数).test(被测试参数)
在这里插入图片描述

在这里插入图片描述
这是and方法的底层逻辑

Function方法

(java以及定义好的函数式接口)

简介

在这里插入图片描述
他可以用于将一个值转换为另一个类型的新值
其中,apply是抽象方法

具体操作1

在这里插入图片描述
注意 int不能作为泛型,所以当方法参数某个位置是泛型,那么设置int的时候 就要用int的包装类,Integer类

具体操作2

在这里插入图片描述
这是main方法里的调用方法语句,以及lambda表达式的内容
在这里插入图片描述
这是自定义方法,需要三个参数

注意 对于第一条语句,fun1.apply(s)调用之后,会进入main方法里对应的lambda表达式的代码体里进行运行,之后回到自定义方法的第一条语句,赋值给Integer

在这里插入图片描述
上面的自定义方法里的代码块可以改进成如上,利用andthen方法并最后调用apply传入最开始的参数,同时最后应该用最后的参数类型接住

这里写目录标题

  • 函数式接口
    • 简介以及注意点
    • 函数式接口作为方法的参数
    • 函数式接口作为方法参数
    • 常用的函数式接口
      • Supplier
        • 简介
        • 具体代码操作
      • Consumer
        • 简介
        • 具体代码演示
          • 演示1
          • 演示2
      • Predicate接口
        • 简介以及接口中的方法
        • text和negate方法
        • and和or方法
        • Function方法
          • 简介
          • 具体操作1
          • 具体操作2
  • 一级目录
    • 二级目录
    • 二级目录
    • 二级目录
  • 一级目录
    • 二级目录
    • 二级目录
    • 二级目录

一级目录

二级目录

二级目录

二级目录

这里写目录标题

  • 函数式接口
    • 简介以及注意点
    • 函数式接口作为方法的参数
    • 函数式接口作为方法参数
    • 常用的函数式接口
      • Supplier
        • 简介
        • 具体代码操作
      • Consumer
        • 简介
        • 具体代码演示
          • 演示1
          • 演示2
      • Predicate接口
        • 简介以及接口中的方法
        • text和negate方法
        • and和or方法
        • Function方法
          • 简介
          • 具体操作1
          • 具体操作2
  • 一级目录
    • 二级目录
    • 二级目录
    • 二级目录
  • 一级目录
    • 二级目录
    • 二级目录
    • 二级目录

一级目录

二级目录

二级目录

二级目录


http://www.ppmy.cn/news/183825.html

相关文章

排序算法——直接插入排序

直接插入排序 基本思想 直接插入排序是一种简单明了的插入排序法,其基本思想是:把待排序的数据按其关键码值的大小逐个插入到一个已经排好序的有序序列中,直到所有数据插入完为止。 在现实生活中,我们玩扑克对牌进行排序就运用了…

Docker安装Mysql教程(linux)

本文主要讲解如何使用Docker去安装mysql 一、搜索镜像 docker search mysql二、拉取镜像 不指定版本,默认为最新版,这里用的5.7 docker pull mysql:5.7三、创建容器(运行镜像) 1、内外都使用3306端口(确保你的宿主机3…

LeetCode ! 78. subsets

参考资料:leetcode评论区,左程云算法课 78. Subsets Given an integer array nums of unique elements, return all possible subsets (the power set).The solution set must not contain duplicate subsets. Return the solution in any order.Exampl…

华为RH2288V5机型RAID LSI3508 不认插入的盘

该V5机器是当前新款机型,采用2U 双路设计 ,最大支持24条服务器型内存DDR4。 支持LSI3108 3508阵列卡。 阵列卡只有在 UEFI引导模式下 才能 进行配置(3508亲测)。 如果插入新硬盘带阵列信息,开机直接从UEFI引导进入阵列…

【小R记事本】关于Win10更新至21H2版后笔记本电脑WiFi无法使用问题的解决过程

这里写自定义目录标题 计算机型号:Alienware M15X,2017款 问题现象:Win10更新后Wi-Fi无法使用 现象描述: Win10更新后(更新至版本号21H2)Wi-Fi无法使用,使用网线接入后发现能够使用有线网&#…

【unity之c#】所以迭代器的原理知识你还清楚吗?

👨‍💻个人主页:元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏:uni…

WIN键失灵

一般就是win键被锁住了,可以用快捷键解锁。 方法一:Fn(F1-F12某个键,根据品牌不同有区别,一个个试过去) 华为 FnF3Cherry FnF9外星人 FnF6… 方法二:FnWin方法三:FnPrtSc(ikbc键盘适用&#xf…

如何解决USB数据线连打印机失败问题?

一般的打印机连接电脑时有两种方式:1、USB有线连接 2、同一局域网无线连接。今天就对第一种使用USB连接电脑时无法进行连接遇到的问题,讲解解决办法: 1、端口问题 因为我的电脑是Win7系统,鼠标右键我的电脑,点击管理这…