图说jdk1.8新特性(1)--- 函数式接口

2022-11-13,,,,

函数接口

总结起来就以下几点:

如果一个接口要想成为函数接口(函数接口可以直接用lambda方式简化),则必须有且仅有一个抽象的方法(非default和static)

可以通过注解@FunctionalInterface注解通过在编译时报错防止其他人破坏函数式接口


接口默认和静态方法

总结如下:

jdk1.8之后接口可以实现default方法和static方法,其实就是将接口当做了一个抽象类
default方法是非静态,必须通过接口的实现类来调用,接口实现类中可以对该方法进行重写。而static方法可以直接通过接口调用。


方法引用

总结如下:

方法的引用方式只能用在作为方法的参数,不能用在new创建对象上
方法引用作为参数时,原参数类型必须是函数式接口或者原本是一个lambda表达式
用方法引用new出来的对象,其实质上还是函数式接口的一个lamba子类,此时多态不起作用 (其实直接写成 doSome(TestMain::new)也是可以的,他仅仅表示使用对象的构造方法来构造一个函数接口实例)

图说jdk1.8新特性(1)--- 函数式接口的相关教程结束。

《图说jdk1.8新特性(1)--- 函数式接口.doc》

下载本文的Word格式文档,以方便收藏与打印。