Java函数式接口与逐步lambda简化

函数式接口(functional interface 也叫功能性接口,其实是同一个东西)。

简单来说,函数式接口是只包含一个方法的接口。比如Java标准库中的java.lang.Runnable和 java.util.Comparator都是典型的函数式接口。

 

Java中的lambda无法单独出现,它需要一个函数式接口来盛放,lambda表达式方法体其实就是函数接口的实现.

(在我们重现线程的run方法,实现数组倒序排序的时候重写comoarator时候都要用到lambda表达式 来实现函数式接口

 

lambda包含三部分:
1、一个括号内用逗号分隔的形式参数,参数是函数式接口里面方法的参数
2、一个箭头符号:->
3、方法体,可以是表达式和代码块。

 

 

在IDEA中接口的方法 默认为抽象方法。

在外面声明一个函数式接口 及一个对应的实现类

 

 

在类中声明一个静态内部类

static内部类是顶级内部类:可以一次性创建对象。非静态内部类 需要先创建外面的类 再通过外面的类创建非静态内部类。

static内部类里面可以使用static关键字。

 

 

 

我们回到简化上面来。看一下静态内部类。 放在类里

 

 

 

局部内部类。放在方法里的

 

 

匿名内部类 也是在方法里面的,不同点在于没有类的名称

 

 

最后看一下lambda简化

 

posted @ 2021-01-11 22:45  枫叶像思念  阅读(481)  评论(0编辑  收藏  举报