6个Java不容错过的新特性 -- Text Blocks & Sealed Classes

「这是我参与11月更文挑战的第25天,活动详情查看:2021最后一次更文挑战

2018年,随着新的发布节奏的采用,Java悄然经历了其发展中最大的变化之一。这个大胆的新计划使Java开发人员每六个月就能得到一个新的功能版本。

这对于保持Java的新鲜感和相关性来说是非常好的,但这也使得它很容易错过功能的引入。这篇文章总结了几个有用的新特性,并对它们进行了概述。

Text Blocks

Java 13通过引入文本块解决了长期以来在Java中处理复杂文本字符串的烦恼。Java 14完善了这种支持。

像JSON、XML和SQL这样的东西会让你为多个嵌套的转义层而疯狂。正如规范所解释的。

在Java中,在字符串字面中嵌入HTML、XML、SQL或JSON片段......通常需要通过转义和连接进行大量的编辑,然后包含该片段的代码才能编译。该代码段通常难以阅读,维护起来也很费劲。

请看下面的例子,其中使用了新的文本块语法来创建JSON片段。

class TextBlock { 
  public static void main(String args[]) {
    String json = """
      {
        "animal" : "Quokka",
        "link" : "https://en.wikipedia.org/wiki/Quokka"
      }
    """;

    System.out.println(json);
  }
}
复制代码

在上面的例子里,没有看到一个转义字符。注意三倍双引号的语法。

Sealed classes

Java 15(JEP 260)引入了密封类的概念。简而言之,新的sealed关键字允许你定义哪些类可以子类化一个接口。在这种情况下,一个例子胜过千言万语。请看下面的例子。

public abstract sealed class Pet
    permits Cat, Dog, Quokka {...}
复制代码

在这里,接口设计者使用sealed关键字来指定哪些类被允许扩展Pet类。

总的来说,很明显,对Java发布的新方法正在发挥作用。我们看到很多新的想法通过JEP(JDK增强建议)过程变成了实际的、可使用的Java功能。这对Java开发者来说是个好消息。这意味着我们正在一个活生生的、不断发展的语言和平台中工作。

感谢观看,这是6个Java不容错过的新特性最后一篇文章,如果您有兴趣,可以关注一下我,方便查看后续文章,一起学习,共同进步,不胜感激!

猜你喜欢

转载自juejin.im/post/7034477211000242189