「Java」我是不会换java14的!不,你会的。
文章图片
文章图片
Java14已经发布两个多月了 , 在甲骨文超高更新频率的这几年 , 到底甲骨文的底牌是什么?凭什么会认为我们开发者会买他们的账?
下面是小便整理的关于java14新特性的资料 。
【「Java」我是不会换java14的!不,你会的。】1、改进的switch表达式
第一次出现在Java 12和13中 , 在Java 14中获得了完全的支持;新的switch表达式的优点是 , 不再有缺省跳过行为(fall-through) , 更全面 , 而且表达式和组合形式更容易编写 , 因此出现bug的可能性就更低 。 例如 , switch表达式现在可以使用箭头语法 , 如下所示:
var log = switch (event) {
case PLAY -> \"白白的圆月如八月十五\";
case STOP PAUSE -> \"老王市中心打老虎\";
default -> {
String message = event.toString();
LocalDateTime now = LocalDateTime.now();
yield \" 老虎打不到 \" + message +
\" 小巷八月十五 \" + now;
;
很明显 , 这将大大减少了我们的代码量 。
2、文本块
多行文本的格式化可能需要编写许多字符串连接操作和转义序列 。 下面的代码演示了一个HTML的例子:
String html = \"<HTML>\" +
\"\\\t\" + \"<BODY>\" +
\"\\\t\\t\" + \"<H1>\\\"Java 14 is here!\\\"</H1>\" +
\"\\\t\" + \"</BODY>\" +
\"\\" + \"</HTML>\";
有了文本块 , 就可以简化这一过程 , 只需使用三引号作为文本块的起始和结束标记 , 就能编写出更美观好看的代码:
String html = \"\"\"
<HTML>
<BODY>
<H1>\"Java 14 is here!\"</H1>
</BODY>
</HTML>\"\"\";
与普通的字符串字面量相比 , 文本块的表达性更好 。
引入了两个新的转义序列 。 第一 , 可以使用新的 \\s 转义序列来表示一个空格 。 第二 , 可以使用反斜杠 \\ 来避免在行尾插入换行字符 。 这样可以很容易地在文本块中将一个很长的行分解成多行来增加可读性 。
例如 , 现在编写多行字符串的方式如下:
String literal =
\"我必须得败家啊不败家不浪费我爸妈赚钱的才华了吗? \" +
\"我们的目标是大力出奇迹 \" +
\"和没有蛀牙.\";
在文本块中使用 \\ 转义序列 , 就可以写成这样:
String text = \"\"\"
我必须得败家啊不败家不浪费我爸妈赚钱的才华了吗? \\
我们的目标是大力出奇迹 \\
和没有蛀牙.\\
\"\"\";
不得不说 , 这文本块新特性治好了我的字符串拼接时一次次犯的强迫症
3、instanceof的模式匹配
Java 14引入了一个预览特性 , 有了它就不再需要编写先通过instanceof判断再强制转换的代码了 。 例如 , 下面的代码:
if (obj instanceof Group) {
Group group = (Group) obj;
// use group specific methods
var entries = group.getEntries();
利用这个预览特性可以重构为:
if (obj instanceof Group group) {
var entries = group.getEntries();
推荐阅读
- 红米手机@售价1999?大厂这个骚操作,我是真没看懂
- 程序员■Java程序员必知:HashMap进行put操作会不会引起死循
- 课工场郑州翔天信鸽|JavaScript最常用,java是主流,JetBrains公布编程语言排名
- 大米评测 TB|iPhone12到底有没有高刷?分析师:iPhone12将不会搭载120Hz高刷
- 猿灯塔|POI Excel,Java架构-Apache
- 【Java】github上标星70.5k,贼火的Java突击手册,全面详细对标阿里P7
- 小贺说科技|闭眼买都不会亏,小米虽好但别乱选!这3款才是内行人的最爱
- 我是肥球球|“光子芯片”研发国内新进展,华为有救了,弯道超车?放弃光刻机
- 『科学家』人死后会不会去到另一个空间?科学家说出答案,让人难以置信
- 热剧天天乐|更不会造成美国崩溃,病毒不会阻止人类进步