一、函数式接口
仅含一个抽象方法的接口。
使用@FunctionalInterface注解
二、lambda表达式
lambda表达式是函数式接口唯一抽象方法的实现
lambda表达式是函数式接口的一个匿名类实例
lambda表达式可视作一个对象,将其作为参数传递。
lambda表达式两种书写形式:parameters -> an expression
parameters -> {expressions}
lambda表达式执行时会自动创建一个实现了目标函数式接口的实例
三、lambda表达式规约
lambda表达式的所有参数保持一致性:1、同时声明参数类型,也可根据上下文判断
2、异常类型向下兼容
3、参数类型与函数式接口中的方法兼容