@FunctionalInterface 就是用来指定某个接口必须是函数式接口,所以 @FunInterface 只能修饰接口,不能修饰其它程序元素。

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

使用 @FunctionalInterface 修饰了函数式接口。

@FunctionalInterface
public interface FunInterface {static void print() {System.out.println("百度搜索引擎");}default void show() {System.out.println("我正在百度学习Java");}void test(); // 只定义一个抽象方法
}

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

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

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

Java @FunctionalInterface注解相关推荐

  1. java注解 interface_java @FunctionalInterface注解详解

    下面要给大家介绍的就java @FunctionalInterface注解,对于@FunctionalInterface注解不大了解的人,可以通过下面的文章来了解一下哦. 在学习Lambda表达式的时 ...

  2. 通俗易懂地讲解 Java 的注解

    作者 l 会点代码的大叔(CodeDaShu) 今天,我们来聊聊 Java 的注解. 01 注解的概念 Annotation(注解):先看看官方给出的概念,注解是 Java 提供的一种对元程序中元素关 ...

  3. 1.6 @FunctionalInterface注解

    在学习 Lambda 表达式时,我们提到如果接口中只有一个抽象方法(可以包含多个默认方法或多个 static 方法),那么该接口就是函数式接口.@FunctionalInterface 就是用来指定某 ...

  4. java threadsafe 注解_Java 注解详解

    什么是注解 Annotation 中文译过来就是注解.标释的意思,在 Java 中注解是一个很重要的知识点,但经常还是有点让新手不容易理解.而新手很难理解的主要原因是一些技术文档里的专业术语和名词不太 ...

  5. java8 functionalinterface注解_@FunctionalInterface注解的使用

    被@FunctionalInterface注解标记的类型表明这是一个函数接口.从概念上讲,函数接口只有一个抽象方法.如果接口声明的抽象方法覆写Object类的公共方法,那这方法不算作接口的抽象方法,因 ...

  6. Java Annotation(注解)使用教程

    Java Annotation(注解)使用教程 1 什么是注解 2 注解的使用语法 2.1 内置注解介绍以及使用 @Override @Deprecated @SuppressWarnings @Sa ...

  7. Java之注解的定义及使用

    Java的注解在实际项目中使用得非常的多,特别是在使用了Spring之后. 本文会介绍Java注解的语法,以及在Spring中使用注解的例子. 注解的语法 注解的例子 以Junit中的@Test注解为 ...

  8. java path 注解_Java内置系统注解和元注解

    第一节:注解(Annotation)的作用 Annotation(注解)是JDK5.0及以后版本引入的.它的作用是修饰程序元素.什么是程序元素呢?例如:包.类.构造方法.方法.成员变量等. 注解,就是 ...

  9. java8 functionalinterface注解_【Java8】@FunctionalInterface

    阅读目录 什么是函数式接口(Functional Interface) 函数式接口用途 关于@FunctionalInterface注解 函数式接口里允许定义默认方法 函数式接口里允许定义静态方法 函 ...

最新文章

  1. 创办智能车竞赛平台,十五年无间断,育人数十万
  2. Groovy语言之SpringBoot整合JDBC案例
  3. 【Linux入门学习之】数据流重定向
  4. 用Python发一封图文并茂的邮件 荐
  5. 破解keil 2k限制,注册码生成
  6. 并发编程中的重重量级模型和轻量级模型
  7. BZOJ1257:[CQOI2007]余数之和(整除分块)
  8. CCF NOI1012 变换密码
  9. 天线效应的原理及消除【转帖】
  10. 软件收集-建筑工程资料软件
  11. 免安装版MySQL的配置——详细教程
  12. 地震数据剖面图-matlab
  13. 汇佳学校|多元艺术+探究式思维 领航国际艺术教育新趋势
  14. 引爆5G市场,场景为王?
  15. 智慧营区解决方案-最新全套文件
  16. 用Proxifier只代理PC端部分软件
  17. 植物大战僵尸2 服务器维护时间,植物大战僵尸2:老玩家给平民党的7点忠告,不氪金也能玩到通关!...
  18. C语言指针难吗?纸老虎而已,纯干货讲解
  19. zerotier使用教程_zerotier简明教程
  20. matlab实现形态学滤波,Frangi形态学滤波详解

热门文章

  1. 技术员联盟Win11 64位官方全新旗舰版镜像V2021.08
  2. 火狐浏览器摄像头权限怎么开启 火狐浏览器摄像头权限开启的方法
  3. 实现多个下拉框同一批option,选中其一其他框里去除选中的项(不可选择已选过的项)--js
  4. java servlet 获取mac地址_Java开发网 - 请教大家几个关于servlet取ip和mac地址的问题~~!...
  5. spring boot中打包插件spring-boot-maven-plugin和maven-jar-plugin的关联
  6. MyBatis-Plus——增删查改
  7. 远程连接redis遇到的一些错误解决办法JedisConnectionException:java.net.SocketTimeOutException...JedisDataException:D
  8. ddr2的上电顺序_关于内存的插入顺序的问题
  9. python怎么判断输入的是不是数字_如何在PYTHON里判断字符串是否为数字
  10. matlab中计算不等式的解,matlab解不等式