Java9新特性系列(Interface改进)
Java8前时代的Interface
在Java8版本以前,Interface接口中所有的方法都是
抽象方法
和常量
Java8
Java8接口相关的可以看之前的一篇文章Java8新特性系列(Interface)
静态成员
在Java8中Interface支持
静态成员
,成员默认是public final static
的,可以在类外直接调用。
default函数
在Java8中,Interface中支持函数有实现,只要在函数前加上
default
关键字即可,如下:
static函数
在Java8中允许Interface定义
static
方法,这允许API设计者在接口中定义像getInstance一样的静态工具方法,这样就能够使得API简洁而精练。
@FunctionalInterface注解
- 什么是
函数式接口
?
函数式接口其实本质上还是一个接口,但是它是一种特殊的接口:SAM类型的接口(Single Abstract Method)。定义了这种类型的接口,使得以其为参数的方法,可以在调用时,使用一个
Lambda
表达式作为参数。@FunctionalInterface
注解能帮我们检测Interface是否是函数式接口,但是这个注解是非必须的,不加也不会报错。
- 函数式接口的作用?
函数式接口,可以在调用时,使用一个lambda表达式作为参数。
Java8中的Interface扩展了Java8之前的接口,更像是一个抽象类。