该注解用来注解函数接口。函数接口(Functional Intelface)是一个有且只有一个抽象方法的接口,可以有多个静态方法。
1. 自定义示例
1.1 自定义函数接口
该函数接口有且只有一个抽象方法,一个成员变量(默认被final static修饰),多个静态方法,且可在方法内引用其他自定义类。
@FunctionalInterface
interface Student{
String name="Jerome"; // 默认被final static修饰
void study(); // 抽象方法
static void goSchool(){
System.out.println("Going school.");
}
static void singIn(){
System.out.println(name);
}
static void getJob(){
Staff staff = new Staff(); //自定义类
staff.setName(name);
}
}
// 准备测试的用例类
class Teacher {
static void teach(Student student){
student.study(); // 调用函数接口Student的抽象方法
}
}
1.2 测试用例
@Test
void functionalInterfaceTest(){
Student.goSchool();
Student.singIn();
Teacher.teach(()->System.out.println("Student is studying.")); // lambda实现函数接口的study 抽象方法
}
结果打印
Going school.
Jerome
Student is studying.
2. 内置行数接口
-
java.lang.Runnable
-
java.util.concurrent.Callable
-
java.util.function.Perdicate
...