图解jdk1.8新特性(1)
函数式接口
总结起来就以下几点:
- 如果一个接口要想成为函数接口(函数接口可以直接用lambda方式简化),则必须有且仅有一个抽象的方法(非default和static)
- 可以通过注解
@FunctionalInterface
注解通过在编译时报错防止其他人破坏函数式接口
接口默认和静态方法
总结如下:
- jdk1.8之后接口可以实现default方法和static方法,其实就是将接口当做了一个抽象类
- default方法是非静态,必须通过接口的实现类来调用,接口实现类中可以对该方法进行重写。而static方法可以直接通过接口调用。
方法引用
总结如下:
- 方法的引用方式只能用在作为方法的参数,不能用在new创建对象上
- 方法引用作为参数时,原参数类型必须是函数式接口或者原本是一个lambda表达式
- 用方法引用new出来的对象,其实质上还是函数式接口的一个lamba子类,此时多态不起作用
原文地址:https://www.cnblogs.com/Kidezyq/p/11727708.html
时间: 2024-10-09 07:06:50