函数式接口的使用

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重写接口中的抽象方法"));
    }
}
复制代码

 

posted @   harara  阅读(114)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
点击右上角即可分享
微信分享提示

目录导航