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>
""";

//使用"""作为文本块的开始符和结束符,在其中就可以放置多行的字符串,不需要进行任何转义。看起来就十分清爽了



posted @ 2020-08-27 15:27  叮叮叮叮叮叮当  阅读(154)  评论(0编辑  收藏  举报