首页 > 编程语言 > 详细

Java 13新特性

时间:2019-09-19 12:53:37      阅读:91      评论:0      收藏:0      [点我收藏+]

switch表达式

switch表达式是Java 12开始就提供的预览特性,到了Java 13仍然没有被转正。此特性可以把switch的执行结果组合到复合表达式中进行运算。

import java.time.LocalDate;

public class SwitchExpressionsDemo {
    public static void main(String[] args) {
        int year = 2012;
        int month = 2;

        // 把某月的天数与24和60相乘,得到此月份的分钟数
        int minutes = 24 * switch (month) {
        case 1, 3, 5, 7, 8, 10, 12 -> 31;
        case 4, 6, 9, 11 -> 30;
        case 2 -> LocalDate.of(year, month, 1).isLeapYear() ? 29 : 28;
        default -> throw new IllegalArgumentException("月份应在1~12区间内取值");
        } * 60;

        System.out.printf("%d年%d月有%d分钟", year, month, minutes);
    }
}

使用以下命令进行编译:

D:\>javac --enable-preview -source 13 -encoding utf-8 .\SwitchExpressionsDemo.java
注: .\SwitchExpressionsDemo.java 使用预览语言功能。
注: 有关详细信息,请使用 -Xlint:preview 重新编译。

使用以下命令执行程序:

D:\>java --enable-preview SwitchExpressionsDemo
2012年2月有41760分钟

文本块(多行字符串)

从Java 13开始支持文本块(多行字符串),可以替代从前丑陋的多行字符串拼接。此特性目前也是预览特性。

public class MultiLinesStringDemo {
    public static void main(String[] args) {
        // 使用"""..."""可以声明一个文本块
        String multiLinesStrting = """
        学海孤帆远
        书山崎路长
        玉颜千钟粟
        长留万古芳""";
        
        // 直接在控制台输出文本块
        System.out.println(multiLinesStrting);
        
        System.out.println("----------- 分割线 -----------");

        // 使用String类的lines()方法得到一个Stream对象,处理并输出其中的每个元素
        // Stream中的元素由文本块中的每一行子串构成
        multiLinesStrting.lines().map(s -> s + "!!!!!").forEach(System.out::println);
    }
}

使用以下命令进行编译:

D:\>javac --enable-preview -source 13 -encoding utf-8 .\MultiLinesStringDemo.java
注: .\MultiLinesStringDemo.java 使用预览语言功能。
注: 有关详细信息,请使用 -Xlint:preview 重新编译。

使用以下命令执行程序:

D:\>java --enable-preview MultiLinesStringDemo
学海孤帆远
书山崎路长
玉颜千钟粟
长留万古芳
----------- 分割线 -----------
学海孤帆远!!!!!
书山崎路长!!!!!
玉颜千钟粟!!!!!
长留万古芳!!!!!

Java 13新特性

原文:https://www.cnblogs.com/dyriger/p/11548312.html

(1)
(1)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!