[新闻] Java 14即将发布,正式加入新的Switch表

楼主: Jyery (文帝)   2020-03-08 14:33:37
1.媒体来源:
ITHOME
2.记者署名
文/李建兴
3.完整新闻标题:
Java 14即将发布,正式加入新的Switch表示式
4.完整新闻内文:
依照6个月的发布周期,甲骨文预计在3月17日时释出Java 14,这个版本有三个主要的更
新,第一个便是在Java 12新增的预览功能Switch表示式,在Java 14中成熟成为正式功能
,第二个则是新增的语言功能,为instanceof增加模式配对,第三个则是JVM的功能,提
供有用的NullPointerExceptions讯息。
由于Java旧的Switch表示式有几个问题,因此官方在Java 12的时候,加入新的Switch表
示式语法预览版,要让Switch更好用。Switch表示式语法包含case以及break陈述式,条
件配对由上往下执行,一旦进到特定case中,break陈述式会确保下一个case区块不会被
执行,但是当开发者忘记写break,执行流程会继续往下走,直到碰到下一个break,这个
现象被称为贯穿(Fall-through)。
而在新的Switch表示式中,使用了新的语法来避免贯穿发生的可能性,因此能够降低可能
产生臭虫的机率。新的Switch格式使用Lambda风格的语法,该语法由标签和回传值程式码
间的箭头组成,但官方强调,这个并非真正的Lambda表示式,只是类似而已。
Java 12之前,Switch表示式中每一个case只能使用一个标签,因此尽管不同标签的处理
逻辑相同,仍需要分开写成两个case区块,或是故意利用贯穿现象来达成目的,但是故意
使用贯穿可能会造成误解,因为在部分情况会难以判断缺少break陈述式是故意的还是无
意的。而在新的Switch表示式中,现在可以在case使用多个标签处理这样的情况。
官方表示,新的Switch表示式也更加详尽安全,当开发者在Switch中使用enum时,编译器
会检查case是否枚举所有enum中的值,当创建的switch没有涵盖所有的值,则会出现编译
器错误,这个错误可以提醒开发者处理遗漏的情况。
另外,Switch在Java 12之前只是一个陈述式,而现在则可做为一个表示式使用。官方提
到,陈述式的本质是动作,而表示式的本质则是请求产生一个值,表示式越基本容易理解
,也会使得程式码更容易维护。而现在开发者可以把switch撰写成简洁的表示式,以更好
地表明程式码的意图。
Java 14为instanceof加入模式配对,这个功能可减少有条件instanceof检查,进行强制
转换的需要。模式配对是让开发者能够测试值的样子,并在符合特定规则的时候撷取出资
讯,在测试参数以确定其类型时,会经过转换,并宣告区域变量,以便后续利用特定类型
进行处理。
这个新的语言功能,则是让开发者从物件中有条件地取出元件变得简单,使语法更加简单
可读,官方表示,这个预览功能为广泛的模式配对开了一个门,模式配对的中心思想,就
是要提供一个功能,可以简单地根据条件,从物件中撷取出元件,而instanceof运算子就
是这样的功能。
Java 14加入新的JVM功能,让开发者可以获取更多可用于诊断错误的讯息,在Java 14之
前,NullPointerException讯息含糊不清,无法明确的让开发者知道程式问题所在,而现
在,讯息至少会包含问题发生的位置以及原因两类资讯。这项功能不止可用于方法调用,
还可用于其他可能导致NullPointerException的地方,包括字段存取、阵列存取和赋值。
5.完整新闻连结 (或短网址):
https://www.ithome.com.tw/news/136186
6.备注:
听起来很厉害 不过感觉学生都在学python
可以玩健身环吗

Links booklink

Contact Us: admin [ a t ] ucptt.com