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

被折叠的 条评论
为什么被折叠?



