方法的参数或局部变量类型必须为接口!!!,才能使用Lambda
eg:局部变量类型:(Runnable是一个接口)
匿名内部类方式:
Runnable r = new Runnable(){ @override public void run(){ System.out.println("xxx"); } }
这种情况,你要来个局部变量,可以使用 Lambda表达式
Runnable r = ()-> System.out.println("xxx");
JDK8中,只有一个抽象方法的接口称为函数式接口,我们就能使用 Lambda。 针对一个接口中,是否有大于一个抽象方法?JDK8为我们新增了一个注解:@FunctionalInterface。它能够帮助我们检测这个接口是不是只有一个抽象方法,如果有两个抽象方法,则会报错。
频繁往外读取内容的,适合用上界Extends
经常往里插入的,适合用下界Super