JDK 8 -- FunctionalInterface函数式接口

@FunctionalInterface是JDK 8 中新增的注解类型,用来描述一个接口是函数式接口。例如我们熟悉的Runnable 接口:

@FunctionalInterface
public interface Runnable {   
     public abstract void run();
}

函数式接口的特征:

  • 接口中只定义了一个抽象方法。如TestInterface 接口中,只有一个sayHello()方法。

      @FunctionalInterface
      public interface TestInterface {   
           public abstract void sayHello();
      }
    
  • 接口中允许存在重写Object类的抽象方法。如在TestInterface 接口中,新增一个toString()方法,仍然不会报错。因为TestInterface 接口的实现类一定是Object类的子类,继承了toString()方法,也就自然实现了TestInterface 接口定义的抽象方法toString()

      @FunctionalInterface
      public interface TestInterface {   
           public abstract void sayHello();
           public abstract void toString();
      }
    
  • 函数式接口可以使用Lambda表达式方法引用构造函数引用来创建。其中的Lambda表达式在下一篇文章中会说明。

使用@FunctionalInterface可以防止以后在接口中添加新的抽象方法签名。

你可能感兴趣的:(JDK 8 -- FunctionalInterface函数式接口)