没有合适的资源?快使用搜索试试~ 我知道了~
摘录一些jdk8的新特性,电子文档!
资源推荐
资源详情
资源评论
JAVA8 十大新特性详解
本教程将 的新特新逐一列出,并将使用简单的代码示例来指导你如何使用默认接口
方法, 表达式,方法引用以及多重 ,之后你将会学到最新的 上
的改进,比如流,函数式接口, 以及全新的日期
本教程将用带注释的简单代码来描述新特性,你将看不到大片吓人的文字。
一、接口的默认方法
允许我们给接口添加一个非抽象的方法实现,只需要使用 关键字即可,这
个特征又叫做扩展方法,示例如下:
复制代码代码如下
!"
### $%&
###'$%"
#######'$%&
###(
(
! 接口在拥有 方法之外同时还定义了 ' 方法,实现了 ! 接口
的子类只需要实现一个 方法,默认方法 ' 将在子类上可以直接使用。
复制代码代码如下
!)*!$%"
###+,
### $%"
#######'$-.//%&
###(
(&
$.//%&####00.///
'$.1%&##########002/
文中的 被实现为一个匿名类的实例,该代码非常容易理解,1 行代码实现了计算
'$-.//%。在下一节中,我们将会看到实现单方法接口的更简单的做法。
译者注: 在 中只有单继承,如果要让一个类赋予新的特性,通常是使用接口来实现,
在 344中支持多继承,允许一个子类同时具有多个父类的接口与功能,在其他语言中,
让一个类同时具有其他的可复用代码的方法叫做 5。新的 的这个特新在编译器
实现的角度上来说更加接近 6 的 。 在 37中也有名为扩展方法的概念,允许给已
存在的类型扩展方法,和 的这个在语义上有差别。
二、Lambda 表达式
首先看看在老版本的 中是如何排列字符串的:
复制代码代码如下
896:);8$<<=<<=<><=<5<%&
3 $=*396:$%"
###+,
### $6=6%"
####### ?$%&
###(
(%&
只需要给静态方法 3 传入一个 8 对象以及一个比较器来按指定顺序排列。
通常做法都是创建一个匿名的比较器对象然后将其传递给 方法。
在 中你就没必要使用这种传统的匿名对象的方式了, 提供了更简洁的语法,
表达式:
复制代码代码如下
3 $=$6=6%@:"
### ?$%&
(%&
看到了吧,代码变得更段且更具有可读性,但是实际上还可以写得更短:
复制代码代码如下
3 $=$6=6%@: ?$%%&
对于函数体只有一行代码的,你可以去掉大括号"(以及 关键字,但是你还可以写
得更短点:
复制代码代码如下
3 $=$=%@: ?$%%&
编译器可以自动推导出参数类型,所以你可以不用再写一次类型。接下来我们看看
表达式还能作出什么更方便的东西来:
三、函数式接口
8 表达式是如何在 A 的类型系统中表示的呢?每一个 表达式都对应一
个类型,通常是接口类型。而“函数式接口”是指仅仅只包含一个抽象方法的接口,每一个
该类型的 表达式都会被匹配到这个抽象方法。因为 默认方法 不算抽象方法,所
以你也可以给你的函数式接口添加默认方法。
我们可以将 表达式当作任意只包含一个抽象方法的接口类型,确保你的接口一定
达到这个要求,你只需要给你的接口添加 +! 注解,编译器如果发现
你标注了这个注解的接口有多于一个抽象方法的时候会报错的。
示例如下:
复制代码代码如下
+!
39!=?:"
###? $!%&
(
396=: )$%@:,$%&
) $<.BC<%&
6;$ %&###00.BC
需要注意如果+! 如果没有指定,上面的代码也是对的。
译者注 将 表达式映射到一个单方法的接口上,这种做法在 之前就有别的
语言实现,比如 D6 解释器,如果一个函数参数接收一个单方法的接口而
你传递的是一个 ,D解释器会自动做一个单接口的实例到 的适配
器,典型的应用场景有 *C E?的 E8第
二个参数 E8。
四、方法与构造函数引用
前一节中的代码还可以通过静态方法引用来表示:
复制代码代码如下
396=: ),&
) $<.BC<%&
6;$ %&##00.BC
允许你使用 关键字来传递方法或者构造函数引用,上面的代码展示了如何引用
一个静态方法,我们也可以引用一个对象的方法:
复制代码代码如下
# )F&
6 ) $<<%&
6;$ %&###00<<
接下来看看构造函数是如何使用关键字来引用的,首先我们定义一个包含多个构造函数
的简单类:
复制代码代码如下
"
###6G&
###6G&
###$%"(
###$6G=6G%"
#######G)G&
#######G)G&
剩余15页未读,继续阅读
资源评论
冷冰
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功