java8函数式编程之一:@FunctionalInterface注解

来源:互联网 发布:淘宝红包使用规则 编辑:程序博客网 时间:2024/05/22 17:14

标注为FunctionalInterface的接口被称为函数式接口,该接口只能有一个自定义方法,但是可以包括从object类继承而来的方法。如果一个接口只有一个方法,则编译器会认为这就是一个函数式接口。例如这样写:

public interface FunctionalInterfaceTest {void test1();}

如果在接口上面加入@FunctionalInterface注解,那么该接口就会被强制要求符合函数式接口的规范,比如可以这样写:

@FunctionalInterfacepublic interface FunctionalInterfaceTest {void test1();}

也可以添加继承自object的类的方法:

@FunctionalInterfacepublic interface FunctionalInterfaceTest {void test1();@OverrideString toString();}

但是如果下面这样,在一个接口中定义两个自定义的方法,就会产生Invalid '@FunctionalInterface' annotation; FunctionalInterfaceTest is not a functional interface错误:

@FunctionalInterfacepublic interface FunctionalInterfaceTest {void test1();void test2();}



0 0