Java 8 函数式接口是一种拥有单个抽象方法的接口,它可以被隐式地转换为 lambda 表达式。您可以使用 @FunctionalInterface 注解声明一个接口为函数式接口。这样做可以帮助编译器检测到您是否正确地在接口中声明了单个抽象方法。
例如:
@FunctionalInterfacepublic interface Converter<F, T> {
T convert(F from);
}
这是一个函数式接口,因为它只有一个抽象方法 convert()
。您可以使用 lambda 表达式来实现这个接口:
Converter<String,Integer> converter = (from) -> Integer.valueOf(from);
Integer converted = converter.convert("123");
System.out.println(converted); // 123
函数式接口使用起来非常方便,因为它们可以被隐式地转换为 lambda 表达式。这使得您可以使用更简洁的代码来实现接口,而无需显式地创建一个类来实现该接口。