这节课我们讲讲函数式接口。
什么叫函数式接口?
如果一个接口有且仅有一个未实现的方法,我们就说这个接口是函数式接口。
public class FunctionalInterfaceTeach { public static void main(String[] args) { FuncInterface funcInterface = ()->{}; funcInterface.init(); } } //在一个接口上加上@FunctionalInterface注解可以让这个接口强行成为函数式接口 //具体表现在如果这个接口不是函数式接口会直接报错 //只有函数式接口才可以在被构造对象时被lambda表达式替换 //函数式接口并不一定要加@FunctionalInterface注解,加这个注解只是保证这个接口是函数式接口而已 @FunctionalInterface interface FuncInterface{ void run(); //注意,函数式接口的要求是这个接口有且仅有一个未实现的抽象方法 //这意味着你可以写无数个default方法和静态方法 default void init(){ System.out.println(1); } static void fun(){} default void lalala(){} }
Java8四大内置函数式接口: