jdk8新增了一个叫函数式接口的东西,基本上就是给Lambda使用的接口;
函数式接口必须有且只有一个抽象方法,可以有多个default方法或者static方法,可以有Object类中的public方法;
另外jdk8新增了一个注解标签@FunctionalInterface用来指定接口为函数式接口;
注:该注解非必须,即使不加该注解,只要接口符合函数式接口的要求就会被默认为函数式接口;该注解的作用就是显示说明该接口是函数式接口,并且会让编译器检查接口是否符合函数式接口的要求,不符合要求则会报错,可以及时发现所写的函数式接口是否正确;
函数式接口例子:
在java.util.function包下还有一堆函数式接口: