函数式接口的概念函数式接口的定义
函数式接口
概念
函数式接口在Java中是指:有且仅有一个抽象方法的接口。
函数式接口,即适用于函数式编程场景的接口。而Java中的函数式编程体现就是Lambda,所以函数式接口就是可以适用于Lambda使用的接口。只有确保接口中有且仅有一个抽象方法,Java中的Lambda才能顺利地进行推导。
备注:“语法糖”是指使用更加方便,但是原理不变的代码语法。例如在遍历集合时使用的for-each语法,其实底层的实现原理仍然是迭代器,这便是“语法糖”。从应用层面来讲,Java中的Lambda可以被当做是匿名内部类的“语法糖”,但是二者在原理上是不同的。
格式
只要确保接口中有且仅有一个抽象方法即可:
修饰符 interface 接口名称 {
public abstract 返回值类型 方法名称(可选参数信息);// 其他非抽象方法内容
}
由于接口当中抽象方法的public abstract 是可以省略的,所以定义一个函数式接口很简单:
public interface MyFunctionalInterface {void myMethod();
}
@FunctionalInterface注解
与@Override 注解的作用类似,Java 8中专门为函数式接口引入了一个新的注解: @FunctionalInterface 。该注解可用于一个接口的定义上:
@FunctionalInterface
public interface MyFunctionalInterface {void myMethod();
}
一旦使用该注解来定义接口,编译器将会强制检查该接口是否确实有且仅有一个抽象方法,否则将会报错。需要注意的是,即使不使用该注解,只要满足函数式接口的定义,这仍然是一个函数式接口,使用起来都一样。
package com.learn.demo01.FunctionalInterface;
/*函数式接口:有且只有一个抽象方法的接口,称之为函数式接口当然接口中可以包含其他的方法(默认,静态,私有)@FunctionalInterface注解作用:可以检测接口是否是一个函数式接口是:编译成功否:编译失败(接口中没有抽象方法抽象方法的个数多余1个)*/
@FunctionalInterface
public interface MyFunctionalInterface {//定义一个抽象方法public abstract void method();
}
package com.learn.demo01.FunctionalInterface;
/*@Override注解检查方法是否为重写的方法是:编译成功否:编译失败*/
public class MyFunctionalInterfaceImpl implements MyFunctionalInterface{@Overridepublic void method() {}/*@Overridepublic void method2() {}*//*@Overridepublic void method3() {}*/
}
函数式接口的概念函数式接口的定义相关推荐
- 第十章:Java之接口基本概念、接口实现多继承、Object类
专栏目录首页:[专栏必读]Java基础教程和数据结构内容导航和学习说明 注意:本文中会多次使用上一节(第九章:Java多态理解.多态实现.重写.转型和抽象类)中的抽象类 文章目录 一:接口基本概念 ( ...
- PHP接口的概念与接口的应用场景
类: 是某一类事物的抽象,是某类对象的蓝图. 举例: 比如: 女娲造人时,脑子中关于人的形象 就是人类 class Human 如果,女娲决定造人---->形象又没最终定稿时,---->她 ...
- Java8之函数式接口及常用函数式接口
目录 函数式接口 1.概念 2.@FunctionalInterface 3.函数式接口使用方式 常用函数式接口 1.JDK提供的函数式接口举栗 2.Supplier 3.Consumer 4.Pre ...
- 同一个项目相互调接口_超详细——接口测试总结与分享(一)
1,接口的概念 1.接口是啥? 接口是传递数据的通道 接口测试: 是测试系统组件间接口的一种测试 接口主要包括: 同一个系统中模块与模块间的接口/前端后端接口, 另一个是跨系统平台与平台间的对接(内部 ...
- 面向对象的接口思想与函数式编程
1,接口的基本定义格式: public interface 接口名称{ //组成部分:可以包含有抽象,静态,默认,私有方法,常量. } 2.抽象方法 定义:public abstract 返回值 方 ...
- Java基础二十二:函数式接口介绍,函数式接口作为方法参数、返回值,Supplier接口、Consumer接口、Predicate接口、Function接口基本介绍及其案例小练习
函数式接口 1. 函数式接口概念及基本使用 1.函数式接口:有且仅有一个抽象方法的接口,函数式接口就是Lambda表达式使用的前提 2. Java中的函数式编程体现的就是Lambda表达式,所以函数式 ...
- Java 函数式编程案例(函数式接口作为参数和返回值)
文章目录 案例1:函数式接口作为参数 1. 1 原日志代码 1.2 优化的代码 案例2:函数式接口作为返回值 实际开发中使用的 案例1:函数式接口作为参数 1. 1 原日志代码 public clas ...
- 【Web接口测试_基础概念】接口概念、接口分类、接口定义、接口规范、接口方法、接口用例设计整理
[接口基础] 1.接口测试概念 1.1 基础概念 接口的定义:接口英文"interface",表示某个对象和外界交互的部分. 1.2接口的分类: ①用户UI接口,表示提供给用户操作 ...
- java中接口文件创建_功能接口简介–在Java 8中重新创建的概念
java中接口文件创建 世界各地的所有Java开发人员都将至少使用以下接口之一:java.lang.Runnable,java.awt.event.ActionListener,java.util.C ...
最新文章
- 【原创】CGAL中,2D Arrangements学习笔记
- oracle中forall in,oracle10g的forall功能加强
- [flask]gunicorn配置文件
- js (查重)键值对数组(一维数组),并归类计数
- 正则表达式 6. 存在(或)
- ubuntu使用apt-get时出现could not get lock怎么解决
- 造成ORA-01843 无效的月份 的一些原因
- 郁闷的C小加(一)(后缀表达式)
- oracle rac 在完成安装错误。
- 申报表计算机代码是什么,金税盘的维护费在申报表上面有一个要填写减免性质代码怎么填啊 ?那个代码是什么呢?...
- TensorFlow分类任务入门
- 嵌入式开发有必要学习python吗?
- Windows内核安全与驱动编程学习笔记----1.WDK安装
- 微博粉丝精灵_天猫精灵“布蕉绿”新品上线,解锁智能音箱潮流新玩法!
- 设置浏览器保护色(chrome)
- ccsa安学网小程序_CCSA安学网题库1
- iOS-规避iOS审核4.3规则的重心
- svnserve配置
- Kusto Query Language (KQL) 学习笔记
- emoji-mart或者emoji-picker-react实现一个类似于微信聊天的在线发送表情,再加一个带源码的纯js实现,emoji图片本地加载