@FunctionalInterface注解用来修饰interface(接口)
@FunctionalInterface修饰的接口,是一个新的函数接口,可以使用lambda表达式语法来使用
该函数接口只能存在一个抽象方法

一、定义一个函数接口

@FunctionalInterface
public interface UnitFun {
    void exec();
}

二、使用

public class TestUnitFun {
    public static void test(UnitFun fun) {
        fun.exec();
    }
}

三、测试

    @Test
    void testFun() {

        TestUnitFun.test(
                () -> System.out.println("这是一个没有参数,也没有返回的函数。")
        );
    }

控制台输出

这是一个没有参数,也没有返回的函数。

四、定义一个有入参和返回的函数接口

  1. 定义函数接口
@FunctionalInterface
public interface ModifyFun {
    String modify(String var);
}
  1. 在业务中使用这个接口
public class TestModifyFun {

    public static void test(ModifyFun fun) {
        System.out.println(fun.modify("这是一段需要修改的文案"));;
    }
}
  1. 测试
TestModifyFun.test(
                s -> {
                    System.out.println("打印原来的内容:" + s);
                    return "这是重新修改的内容";
                }
        );

控制台输出:

打印原来的内容:这是一段需要修改的文案
这是重新修改的内容

*在lambda函数中没如果是单行,可以不写return

TestModifyFun.test(s -> "这是重新修改的内容");