JDK1.8新特性
一、接口定义增强
- JDK1.8后接口中允许出现以下俩类方法
- 使用default定义的普通方法,需要通过接口对象来调用
- 使用static定义的静态方法,直接使用接口名调用
二、Lambda表达式
- 要想使用函数式编程有一个前提:接口必须只有一个方法,如果存在两个以上的方法,无法使用函数式编程
- 如果现在某个接口就是为了函数式编程而生的,在定义时只能有一个方法,因此有一个注解@FunctionalInterface,此注解检查接口中是否只存在一个抽象方法,存在两个以上编译报错
语法:
方法体只有一行代码时
(方法参数) -> 具体的方法实现
当方法有返回值时,单行代码的Lambda表达式可以省略return
方法体多行代码时
(方法参数) -> {
...
...
...
[return 语句];
}
三、方法引用–与Lambda表达式搭配使用
- 方法引用只是给现有方法起了个别名
- 方法引用的四种形式
- 引用类的静态方法
类名称 :: 静态方法名称- 引用某个对象的方法
实例化对象 :: 普通方法- 调用类中普通方法
类名称 :: 普通方法名- 调用类中的构造方法
类名称 :: new