函数式接口(functional interface 也叫功能性接口,其实是同一个东西)。
简单来说,函数式接口是只包含一个方法的接口。比如Java标准库中的java.lang.Runnable和 java.util.Comparator都是典型的函数式接口。
Java中的lambda无法单独出现,它需要一个函数式接口来盛放,lambda表达式方法体其实就是函数接口的实现.
(在我们重现线程的run方法,实现数组倒序排序的时候重写comoarator时候都要用到lambda表达式 来实现函数式接口
lambda包含三部分:
1、一个括号内用逗号分隔的形式参数,参数是函数式接口里面方法的参数
2、一个箭头符号:->
3、方法体,可以是表达式和代码块。
在IDEA中接口的方法 默认为抽象方法。
在外面声明一个函数式接口 及一个对应的实现类
在类中声明一个静态内部类
static内部类是顶级内部类:可以一次性创建对象。非静态内部类 需要先创建外面的类 再通过外面的类创建非静态内部类。
static内部类里面可以使用static关键字。
我们回到简化上面来。看一下静态内部类。 放在类里
局部内部类。放在方法里的
匿名内部类 也是在方法里面的,不同点在于没有类的名称
最后看一下lambda简化