Java8的@FunctionalInterface注解
@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("这是一个没有参数,也没有返回的函数。")
);
}
控制台输出
这是一个没有参数,也没有返回的函数。
四、定义一个有入参和返回的函数接口
- 定义函数接口
@FunctionalInterface
public interface ModifyFun {
String modify(String var);
}
- 在业务中使用这个接口
public class TestModifyFun {
public static void test(ModifyFun fun) {
System.out.println(fun.modify("这是一段需要修改的文案"));;
}
}
- 测试
TestModifyFun.test(
s -> {
System.out.println("打印原来的内容:" + s);
return "这是重新修改的内容";
}
);
控制台输出:
打印原来的内容:这是一段需要修改的文案
这是重新修改的内容
*在lambda函数中没如果是单行,可以不写return
TestModifyFun.test(s -> "这是重新修改的内容");

浙公网安备 33010602011771号