java @FunctionalInterface注解详解

下面要给大家介绍的就java @FunctionalInterface注解,对于@FunctionalInterface注解不大了解的人,可以通过下面的文章来了解一下哦。

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

例:

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

@FunctionalInterface
public interface FunInterface
{
    static void print()
    {
        System.out.println("C语言中文网");
    }
    default void show()
    {
        System.out.println("我正在学习C语言中文网Java教程");
    }
    void test(); // 只定义一个抽象方法
}

编译上面程序,可能丝毫看不出程序中的@FunctionalInterface有什么作用,因为@FunctionalInterface注解的作用只是告诉编译器检查这个接口,保证该接口只能包含一个抽象方法,否则就会编译出错。

@FunctionalInterface注解主要是帮助程序员避免一些低级错误,例如,在上面的FunInterface接口中再增加一个抽象方法abc(),编译程序的时候就会出现下面的错误提示:

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

Java @FunctionalInterface注解相关内容就给你介绍到这里了,更多java入门知识,可以继续关注奇Q工具网来进行了解呢。

推荐阅读:

java @SafeVarargs注解详解

java注解(Annotation)概念和作用介绍

java @SuppressWarnings注解详解