函数式接口:有且仅有一个抽象方法的接口。常与Lambda使用

语法糖:使用更加方便,但是原理不变的代码语法。例:增强for循环为迭代器的语法糖

lambda可以当做匿名内部类的语法糖,但是二者在原理上有所不同

格式:

修饰符 interface 接口名称{
  public abstract 返回值类型 方法名称(可选参数信息);
  //其他非抽象方法内容
}
  • 1.
  • 2.
  • 3.
  • 4.

@FunctionalInterface注解:可以检测接口是否是一个函数式接口

使用:一般作为方法的参数和返回值类型

例:

函数式接口:

@FunctionalInterface
public interface MyFunctionInterface {
void method();
}
  • 1.
  • 2.
  • 3.
  • 4.

lambda表达式实现接口:

public class demo {
    public static void main(String[] args) {
       show(()-> System.out.println("你好"));
    }
    public static void show(MyFunctionInterface myFunctionInterface){
        myFunctionInterface.method();
    }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.