JAVA14新特性简单预览

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

你可能感兴趣的:(JAVA,java)