JDK8新特性:函数式接口@FunctionalInterface的使用说明

来源:互联网 发布:千牛怎么没有mac版 编辑:程序博客网 时间:2024/05/18 02:03

原文地址:http://blog.csdn.net/aitangyong/article/details/54137067


我们常用的一些接口Callable、Runnable、Comparator等在JDK8中都添加了@FunctionalInterface注解。




通过JDK8源码javadoc,可以知道这个注解有以下特点:

1、该注解只能标记在"有且仅有一个抽象方法"的接口上。

2、JDK8接口中的静态方法和默认方法,都不算是抽象方法。

3、接口默认继承java.lang.Object,所以如果接口显示声明覆盖了Object中方法,那么也不算抽象方法。

4、该注解不是必须的,如果一个接口符合"函数式接口"定义,那么加不加该注解都没有影响。加上该注解能够更好地让编译器进行检查。如果编写的不是函数式接口,但是加上了@FunctionInterface,那么编译器会报错。


@FunctionalInterface标记在接口上,“函数式接口”是指仅仅只包含一个抽象方法的接口



如果一个接口中包含不止一个抽象方法,那么不能使用@FunctionalInterface,编译会报错。



比如下面这个接口就是一个正确的函数式接口:

[java] view plain copy
  1. // 正确的函数式接口  
  2. @FunctionalInterface  
  3. public interface TestInterface {  
  4.   
  5.       
  6.     // 抽象方法  
  7.     public void sub();  
  8.   
  9.     // java.lang.Object中的方法不是抽象方法  
  10.     public boolean equals(Object var1);  
  11.   
  12.     // default不是抽象方法  
  13.     public default void defaultMethod(){  
  14.   
  15.     }  
  16.   
  17.     // static不是抽象方法  
  18.     public static void staticMethod(){  
  19.   
  20.     }  
  21. }  
阅读全文
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 考编忘记交费了怎么办 深圳公租房入库了接下来怎么办 公租房5年以后怎么办 教务系统密码忘记了怎么办 林科大教务处密码忘记了怎么办 智学号密码忘了怎么办 正方教务管理系统忘记密码怎么办 正方教务系统忘记密码怎么办 教务网密码忘了怎么办 电动车解除限速报警器不响怎么办 公租房住满5年怎么办 广州公租房收入超标怎么办 深圳法院拍卖房子不肯搬走怎么办 上海奉贤公租房的期满怎么办 公租房人口少了怎么办 公租房太远了怎么办 商品房没有门厅业主该怎么办 公帐付款备注错了怎么办 我是农村户口在外省交社保怎么办 北京租房遇到黑中介怎么办 上海租房子不让带孩子怎么办 租的房子没窗户怎么办 北京安河桥安河家园租房被骗怎么办 领完失业金后怎么办 北京公租房太小怎么办 申请公租房太小怎么办 房东电费收贵了怎么办 申请公租房工资超了怎么办 重庆公租房工资超了怎么办 公租房申请父母房子贷款怎么办 公产房父母去世办公证怎么办 动迁过程中承租人去世了怎么办 公租房的房间带阳台怎么办 公租房合同到期没有社保怎么办 租房合同没有到期违约了怎么办 租房户到期不搬怎么办 公租房摇号摇到了又怎么办 公租房被清退会怎么办 公租房摇不到号怎么办 公租房到期不搬怎么办 租房到期租客不搬怎么办