JAVA14新特性简单预览

本文介绍了Java14中的几项重要更新,包括switch表达式的改进,文本块的引入,instanceof模式匹配的增强,预览功能Record的介绍以及NullPointerException的详细诊断信息。这些更新旨在简化代码编写,提高开发效率。

1、switch表达式

支持使用箭头

var log = switch (event) {

case PLAY -> “User has triggered the play button”;

case STOP, PAUSE -> “User needs a break”;

default -> {

String message = event.toString();

LocalDateTime now = LocalDateTime.now();

yield "Unknown event " + message +

" logged on " + now;
};

};

2、文本块

对多行文本编写更加友好(使用三引号)

String html = “”"

"Java 14 is here!"

""";

3、instanceof的模式匹配

instanceof是Java的一个双目运算符,用来测试一个对象是否为一个类的实例
boolean result = obj instanceof Class; obj是待验证对象
java 14引入了一个预览特性,有了它就不再需要编写先通过instanceof判断再强制转换的代码了。例如,下面的代码:

if (obj instanceof Group) {

Group group = (Group) obj;

// use group specific methods

var entries = group.getEntries();

}

利用这个预览特性可以重构为:

if (obj instanceof Group group) {

var entries = group.getEntries();

}

可以去掉Java程序里的大多数强制类型转换;减少更多的代码冗余,从而降低bug发生的可能性。

4、预览功能Record

Record主要用于特定领域的类,它的位移功能就是存储数据,而没有任何自定义的行为。
也顺应了减少Java冗余代码的趋势,能帮助开发者写出更精准的代码

Java 14提供了一种方法可以解决这种冗余,可以更清晰地表达目的:这个类的唯一目的就是将数据整合在一起。Record会提供equals、

5、NullPointerException

在Java 14中,新的JVM特性可以显示更详细的诊断信息:
该消息包含两个明确的组成部分:

后果:Location.getCity()无法被调用
原因:User.getLocation()的返回值为null

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值