lambda出现的目的是为了简化匿名内部类
而且内部类必须是函数式接口才可以使用Lambda表达式
匿名内部类中重写方法的形参
就是lambda的小括号里面的内容
->箭头后就是方法体
补充:
@FuntionalInterface
函数时接口
1.只有一个抽象法方法的接口
2.只要加了上边注解的接口就是函数式接口
//这种写法是因为,上下文推断
认识方法引用
静态方法引用
如果某个Lambda表达式里只是调用了一个静态方法,
并且前后参数的形式一直,就可以使用静态方法引用
实例方法引用
如果某个Lambda表达式里只是调用了一个实例方法,
并且前后参数的形式一直,就可以使用实例方法引用
特定类型方法引用
如果某个Lambda表达式里只是调用了一个实例方法,
并且前后参数的形式一直,就可以使用实例方法引用
(o1,o2)-> o1.comparToIgnoreCase(o2)
//可以comparToIgnoreCase方法是String的方法
String::comparToIgnoreCase
构造器引用
name ->new Dog(name)
//前面的参数只是为了创建一个对象
Dog::new