Java8新特性
2020-07-07 16:52:45 0 举报
AI智能生成
jdk8特性
作者其他创作
大纲/内容
接口的默认方法/扩展方法
允许为接口添加一个非抽象方法实现,只需要使用default关键字修饰即可
lambda
基础使用方式
((参数)->{})
(()->表达式)
原始样式
lambda作用域
访问局部变量
在lambda表达式中访问外层的局部变量
在lambda表达式中试图修改num同样是不允许的
num必须不可被后面的代码修改
访问对象字段与静态变量
lambda内部对于实例的字段以及静态变量是即可读又可写。该行为和匿名对象是一致的
函数式接口
“函数式接口”是指仅仅只包含一个抽象方法的接口,每一个该类型的lambda表达式都会被匹配到这个抽象方法。因为 默认方法 不算抽象方法,所以你也可以给你的函数式接口添加默认方法。
方法与构造函数引用
Java 8 允许你使用 :: 关键字来传递方法或者构造函数引用,上面的代码展示了如何引用一个静态方法,我们也可以引用一个对象的方法
使用方法
原始
使用::表示静态方法引用
使用 :: 关键字来传递方法引用
构造函数使用::
DateAPI
Clock 时钟
Timezones 时区
LocalTime 本地时间
LocalDate 本地日期
LocalDateTime 本地日期时间
Annotation注解
在Java 8中支持多重注解
示例
定义注解
访问接口的默认方法
Lambda表达式中是无法访问到默认方法
JDK 1.8 API包含了很多内建的函数式接口,在老Java中常用到的比如Comparator或者Runnable接口,这些接口都增加了@FunctionalInterface注解以便能用在lambda上。
Java 8 API同样还提供了很多全新的函数式接口来让工作更加方便
Predicate接口
示例
Stream 接口
使用方法和示例
建立测试用数据
Filter 过滤
Sort 排序
Map 映射
Match 匹配
Count 计数
Reduce 规约
并行Streams
串行排序
并行排序
Function 接口
示例
Supplier 接口
示例
Consumer 接口
示例
Comparator 接口
示例
Optional 接口
示例
0 条评论
下一页