Java13新特性
switch表达式(预览)
在JDK 12中引入了Switch表达式作为预览特性。JDK 13提出了第二个switch表达式预览。JEP 354修改了这个特性, 它引入了yield语句,用于返回值。这意味着,switch表达式(返回值)应该使yield, switch语句(不返回值)应该使用 break
//之前想要在switch里面返回值的操作
public void testSwitch1(){
String x = "3";
int i;
switch (x) {
case "1":
i=1;
break;
case "2":
i=2;
break;
default:
i = x.length(); break;
}
System.out.println(i);
}
//Java13返回值的写法
public void testSwitch2(){
String x = "3";
int i = switch (x) {
case "1" -> 1;
case "2" -> 2;
default -> {
yield 3;
}
};
System.out.println(i);
}
//另一种写法
public void testSwitch3() {
String x = "3";
int i = switch (x) {
case "1":
yield 1;
case "2":
yield 2;
default:
yield 3;
}
System.out.println(i);
}
//Java13之后,switch中就多了一个关键字用于跳出switch块了,那就是yield,他用于返回一个值。和return的区别在 于:return会直接跳出当前循环或者方法,而yield只会跳出当前switch块。
文本块(预览)
在Java中,通常需要使用String类型表达HTML,XML,SQL或JSON等格式的字符串,在进行字符串赋值时需要进行 转义和连接操作,然后才能编译该代码,这种表达方式难以阅读并且难以维护。
文本块就是指多行字符串,例如一段格式化后的xml、json等。而有了文本块以后,用户不需要转义,Java能自动搞定。因此,文本块将提高Java程序的可读性和可写性
目标
- 简化跨越多行的字符串,避免对换行等特殊字符进行转义,简化编写Java程序
- 增强Java程序中字符串的可读性
使用举例
<html>
<body>
<p>Hello, 尚硅谷</p>
</body>
</html>
//上面的字符串复制到Java代码中会变成下面这样
"<html>\n" +
”<body>\n" +
“<p>Hello, 尚硅谷</p>\n" +
”</body>\n" +
“</html>\n";
//即被自动进行了转义,这样的字符串看起来不是很直观,在JDK 13中,就可以使用以下语法了
"""
<html>
<body>
<p>Hello, world</p>
</body>
</html>
""";
//使用"""作为文本块的开始符和结束符,在其中就可以放置多行的字符串,不需要进行任何转义。看起来就十分清爽了