1.Lambda表达式经常被来表示函数式接口的一个实现,JAVA 8 之前一般是用匿名类实现的;
2.Lambda表达式的类型,也被称为目标类型(targer type),Lambda表达式的目标类型必须是“函数式接口(functional interface)”。即“将Lambda表达式赋值必须赋值给函数式接口类型的变量”,即类似于你不能把一个字符串“Abc”赋值给一个int型的变量(int a="Abc");
3.B是A的一个子类,且B是一个函数式接口,但A不是,如:
B b=Lambda表达式; 正确 //允许将Lambda表达式赋值给函数式接口类型的变量
A a=Lambda表达式; 错误 //不允许将Lambda表达式直接赋值给非函数式接口类型的变量
A a=(B)Lambda表达式; 正确 //使用函数式接口对Lambda表达式进行强制类型转换
4.Java中的lambda无法单独出现,它需要一个函数式接口来盛放,lambda表达式方法体其实就是函数接口的实现.(暂时无法判断该句正确与否,来源:前度刘郎--Java-->Lambda表达式)