函数式接口的使用
1. 什么是函数式接口
- 只包含一个抽象方法的接口,称为函数式接口
- 我们可以在任意函数式接口上使用@FunctionInterface注解,这样做可以检查它是否是一个函数式接口,同时javadoc也会包含一条声明,说明这个接口是一个函数式接口
2. 函数式接口的使用
2.1. 自定义函数式接口
package com.chenly.fun; /** * @author: chenly * @date: 2022-11-29 16:55 * @description: * 函数式接口:有且只有一个抽象方法的接口,称之为函数式接口 * 当然接口中可以包含其他的方法(默认,静态,私有) * * @FunctionalInterface * 作用:可以检测接口是否是一个函数式接口 */ @FunctionalInterface public interface MyFunctionalInterface { //定义一个抽象方法 public abstract Object method(); }
2.2. 实现类MyFunctionalInterfaceImpl
package com.chenly.fun; /** * @author: chenly * @date: 2022-11-29 16:56 * @description: * @version: 1.0 */ public class MyFunctionalInterfaceImpl implements MyFunctionalInterface { @Override public Object method() { System.out.println("实现类重写接口中的抽象方法"); return null; } }
2.3. 函数式接口的使用
package com.chenly.fun; /** * @author: chenly * @date: 2022-11-29 16:57 * @description: 函数式接口的使用:一般可以作为方法的参数和返回值类型 * @version: 1.0 */ public class Demo { /**定义一个方法,参数使用函数式接口MyFunctionalInterface*/ public static Object show(MyFunctionalInterface myInter){ return myInter.method(); } public static void main(String[] args) { //调用show方法,方法的参数是一个接口,所以可以传递接口的实现类对象 show(new MyFunctionalInterfaceImpl()); //调用show方法, 匿名内部类的方式 show(new MyFunctionalInterface() { @Override public Object method() { System.out.println("使用匿名内部类重写接口中的抽象方法"); return null; } }); //调用show方法,使用Lambda表达式 show(()->{ System.out.println("使用Lambda重写接口中的抽象方法"); return null; }); //简化Lambda表达式 //show(()-> System.out.println("使用Lambda重写接口中的抽象方法")); } }
作者:小念
本文版权归作者和博客园共有,欢迎转载,但必须给出原文链接,并保留此段声明,否则保留追究法律责任的权利。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?