欢迎来IT培训班!

咨询热线 18940085928

IT培训网 > 知识学习 > JAVA开发 >

Java @FunctionalInterface注解

授课机构:IT培训班

地址:北京

网报价格:详询

课程原价:

咨询热线:18940085928

课程详情 相关推荐 学校地址 网上报名

在学习 Lambda 表达式时,我们提到如果接口中只有一个抽象方法(可以包含多个默认方法或多个 static 方法),那么该接口就是函数式接口。@FunctionalInterface 就是用来指定某个接口必须是函数式接口,所以 @FunInterface 只能修饰接口,不能修饰其它程序元素。

函数式接口就是为 Java 8 的 Lambda 表达式准备的,Java 8 允许使用 Lambda 表达式创建函数式接口的实例,因此 Java 8 专门增加了 @FunctionalInterface。

例如,如下程序使用 @FunctionalInterface 修饰了函数式接口。

		
  1. @FunctionalInterface
  2. public interface FunInterface {
  3. static void print() {
  4. System.out.println("C语言中文网");
  5. }
  6.  
  7. default void show() {
  8. System.out.println("我正在学习C语言中文网Java教程");
  9. }
  10.  
  11. void test(); // 只定义一个抽象方法
  12. }
编译上面程序,可能丝毫看不出程序中的 @FunctionalInterface 有何作用,因为 @FunctionalInterface 注解的作用只是告诉编译器检查这个接口,保证该接口只能包含一个抽象方法,否则就会编译出错。 @FunctionalInterface 注解主要是帮助程序员避免一些低级错误,例如,在上面的 FunInterface 接口中再增加一个抽象方法 abc(),编译程序时将出现如下错误提示:

“@FunctionInterface”批注无效;FunInterface不是functional接口

  • 学校名称:IT培训网

    固定电话:18940085928

    授课地址:线下 预约名额

报名信息