java_函数式接口

文章目录

一、什么是函数式接口

  • 如果一个接口只有一个抽象方法,那么该接口就是一个函数式接口
  • 函数式接口的实例可以通过 lambda 表达式方法引用 或者构造方法引用来创建
  • 如果我们在某个接口上声明了 @FunctionalInterface 注解,那么编译器就会按照函数式接口的定义来要求该接口

二、四大核心函数式接口

函数式接口 称谓 参数类型 用途
Consumer<T> 消费型接口 T 对类型为T的对象应用操作,包含方法: void accept(T t)
Supplier<T> 供给型接口 返回类型为T的对象,包含方法:T get()
Function<T, R> 函数型接口 T 对类型为T的对象应用操作,并返回结果。结果是R类型的对象。包含方法:R apply(T t)
Predicate<T> 判断型接口 T 确定类型为T的对象是否满足某约束,并返回 boolean 值。包含方法:boolean test(T t)

三、使用举例

java 复制代码
public class One {

    public static void main(String[] args) {
        consumMoney(2000,x-> System.out.println("这个手机是:"+x+"元"));
    }

    public static void consumMoney(int money, Consumer consumer){
        consumer.accept(money);
    }

}

结果:

在上述例子中,main方法中调用了consumMoney方法,传入了两个参数;consumer的实现形式 就是x-> System.out.println("这个手机是:"+x+"元"),即:传入一个参数x,然后拼接输出。在consumMoney方法中调用accept方法,按照预定实现形式输出结果。

相关推荐
峥嵘life19 小时前
Android16 应用代码新特性
java·开发语言·学习·安全
Monkey-旭19 小时前
Android 注解完全指南:从基础概念到自定义实战
android·java·kotlin·注解·annotation
Roye_ack19 小时前
【项目实战 Day5】springboot + vue 苍穹外卖系统(Redis + 店铺经营状态模块 完结)
java·spring boot·redis·学习·mybatis
JIngJaneIL19 小时前
记账本|基于SSM的家庭记账本小程序设计与实现(源码+数据库+文档)
java·数据库·vue.js·spring boot·论文·毕设·家庭记账本小程序
Ting-yu19 小时前
Nginx快速入门
java·服务器·前端·nginx
小虎l19 小时前
李兴华-JavaWEB就业编程实战
java
卡卡酷卡BUG20 小时前
Redis 面试常考问题(高频核心版)
java·redis·面试
青云交20 小时前
Java 大视界 -- Java 大数据机器学习模型在金融衍生品定价与风险管理中的应用(415)
java·机器学习·金融衍生品·dl4j·信用风控·spark mllib·期权定价
椰椰椰耶20 小时前
[SpringCloud][7]负载均衡介绍,以及一些实现
java·spring cloud·负载均衡