Java 14 将于3月17日正式发布,包含大量缩短代码冗余的新特性

时间:2020-03-11 04:55 点击:90

原标题:Java 14 将于3月17日正式发布,包含大量缩短代码冗余的新特性

Java 14 计划在今年的3月17日发布,Java 14 包含的 JEP(Java Enhancement Proposals 的缩写,Java 添强提出)比 Java 12 和 13 两个版本添首来还要众。那么,对于每天编写和维护代码的 Java 开发人员来说,哪些特性值得吾们关注呢?

章丘自捧集团有限公司

本文吾将介绍以下几个主要功能:

•改进的 switch 外达式,最初行为预览在 Java 12 和 Java 13 中展现,现在十足成为 Java 14 的一片面。 •instanceof 模式匹配(Pattern matchin),这是一个说话特性; •专门有用的 NullPointerExceptions,是 JVM 的一个特性。

倘若你浏览了本文并在你的代码库中尝试了其中的一些特性,你能够议决向 Java 团队挑供逆馈来分享你的经验。议决云云做,您就有机会为 Java 的开发做出贡献。益了,咱们废话不众说,现在来详细望望 Java 14 值得每一个 Java 关注的新特性。

Switch 外达式(Switch Expressions)

在 Java 14 中,switch 外达式正式成为说话的一片面。倘若你不清新 switch 外达式是什么,能够望下这几篇文章 New switch Expressions in Java 12 [1] 、 《Inside Java 13’s switch Expressions and Reimplemented Socket API》 [2] 、以及 《 JDK 13 都已经来了!五大新特性你最爱哪个 ? 》。

在以前 Java 12 和 Java 13 的版本中,switch 外达式是一个“预览”特性。这边仔细,被指定为“预览”的特性主要用以搜集逆馈,并能够按照逆馈进走更改甚至删除;不过其中的大无数最后将成为 Java 一片面。

新的 switch 外达式的益处包括缩短了 bug 的周围,而且得助于外达式和复相符样式,使 switch 的编写变得浅易。比如 switch 外达式现在能够行使箭头语法:

文本块(Text Blocks)

Java 13 首次引入了文本块,并且行为预览特性。文本块使处理众走字符串更容易。在 Java 14 中,这个特性照样是预览特性,并做了一些调整。在之前,为了挑供有余的众走文本格式,行使很众字符串连接和转义序列来编写代码是很常见的。比如下面的代码展现了一个 HTML 格式化的例子:

有了文本块之后,你能够简化这个过程,并行使分隔文本块起头和末了的三个引号编写更优雅的代码:

与清淡字符串文字相比,文本块还挑供了更强的外达能力。你能够浏览这篇文章:《Text Blocks Come to Java》。

在 Java 14 中增补了两个新的转义字符。最先,能够行使新的 s 转义字符外示单个空格。其次,能够行使逆斜杠 来不准在走的末了插入新走字符。当你想要在文本块平分割一个很长的走以挑高可读性时,这是很有协助的。

比如,现在处理众走字符串的手段如下:

有了 转义字符之后,联系我们吾们能够在文本块中这么来写:

instanceof 的模式匹配

Java 14 引入了一个预览特性,该特性有助于清除在实走 instanceof 检查之后,还必要显式强制转换的必要。例如,考虑以下代码:

// use group specific methodsvarentries = group.getEntries; }

能够行使这个新功能,将上面代码重构如下:

由于条件检查已经判定出 obj 是 Group 类型的,那么为什么还必要在代码中表现转换 obj 为 Group 类型呢?而且这能够会增补舛讹的周围。

新的语法将从典型的 Java 程序中删除很众类型转换。(2011年的一份钻研通知表现,大约24%的 cast 都是在进走 instanceof 判定之后进走的。)

JEP 305 涵盖了这一转折,并指出了来自 Joshua Bloch 的《Effective Java book》中的一个示例,该示例如下:

议决删除对 CaseInsensitiveString 的显式强制转换,能够将前线的代码简化为以下样式:

这是一个值体面验的兴味特性,由于它为更通用的模式匹配掀开了大门。模式匹配的思维是为基于必定条件挑取对象的组件挑供一栽语法方便的说话特征。instanceof 操作符就是这栽情况,由于条件是类型检查,挑取过程调用正当的手段或访问特定的字段。

换句话说,这个预览特性只是一个最先,吾们能够憧憬一个能够协助进一步缩短冗余代码的说话特性,从而缩短 bug 的能够性。

Records

另一个值得关注的预览说话特性:records。与现在挑出的其他特性相通,该特性按照了缩短 Java 说话冗长的趋势,并协助开发人员编写更简洁的代码。Recods 关注特定的域类(domain classes ),这些域类的现在标只是在字段中存储数据,并且不声明任何自定义走为。

为了表明这个特性,倘若吾们有一个域类 BankTransaction,它用三个字段构建一个事务:日期、金额和描述。由于吾们必要考虑和其他组件进走交互,因此吾们还必要以下一些手段:

•组织器 •Getter 手段 •toString 手段 •hashCode 和 equals 手段 这些代码清淡由 IDE 自动生成,占用大量空间。下面是完善生成的 BankTransaction 类实现:

publicBankTransaction(finalLocalDatedate,finaldoubleamount,finalStringdeion){this.date =date;this.amount =amount;this.deion =deion;}

publicLocalDatedate{returndate;}

publicdoubleamount{returnamount;}

publicStringdeion{returndeion;}

@OverridepublicStringtoString{return"BankTransaction{" "date=" date ", amount=" amount ", deion='" deion ''' '}';}

@Overridepublicbooleanequals(Objecto){if(this==o)returntrue;if(o ==null

原标题:利好政策雪中送炭 3月车市会触底反弹吗?

3月2日,据国家发改委消息,中国口罩日产能产量突破1亿只。1个月的时间,包括口罩、防护服、消毒液在内的医用、生活物资的匮乏已经得到了极大的缓解。这背后离不开金融驰援的速度与效率。

  原标题:#沙特打响原油价格战#原油期货一度跌逾30%

  原标题:受疫情影响意大利股市开盘暴跌 大量股票一度无法显示价格 

原标题:今日惊蛰:春雷响,万物长。愿你不负春日好时光!


当前网址:http://www.sheqixinwen.cn/93000345/1024030.html
tag:Java,将于,3月,17日,正式,发布,包含,大量,缩短,

发表评论 (90人查看0条评论)
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
昵称: 验证码:点击我更换图片
最新评论

Powered by 剑阁埒勒医药公司有限公司 @2014 RSS地图 html地图

Copyright 站群系统 © 2013-2018 版权所有