Java 17于2021年9月14日发布。作为新时代的移民工人,有必要了解新事物是什么。
Java 17是Java 11以来的另一个LTS(长期支持)版本。这些更改发生在Java 11和Java 17之间,以在OpenJDK官方网站上找到JEP(Java Enhancement)的完整列表。
本文将重点介绍Java 17的语法更新,并且通过一些代码示例更容易理解,主要涉及以下9分:
在JAVA17之前的版本中,如果我们需要定义字符串,例如JSON数据,则基本上定义了以下方式:
此方法定义了几个问题:
通过Java 17中的文本块语法,类似的字符串处理将更加方便。一个文本块可以通过三个双引号来定义,并且可以结束的三个双引号不能与开始时相同。
上面示例中的JSON可以更方便,并通过文本块更好地阅读。编码显示如下:
该代码的输出是:
Java 17版本中的开关表达式将允许开关具有返回值,并且可以将其直接分配给变量为变量,依此类推。
以下是开关的示例,具体取决于给定的枚举值,执行案例操作并有意省略。
当我们调用此方法并通过一种方法时,结果将输出:
显然,这不是期望的结果,因为我们需要在每种情况下增加休息,以防止所有案件被执行。
可以通过开关表达式来简化简化。将结肠(:)重新放置到箭头( - >),而开关表达式默认为失败,因此不需要断裂。
开关表达式也可以返回值。例如,上面的示例我们可以让Switch返回字符串来表示我们要打印的文本。在开关语句的末尾应注意以添加段。
它也可以直接直接打印。
如果您想在返回之前执行一些计算或打印操作,例如执行一些计算或打印操作,则可以使用括号作为案例块,并且可以使用关键字返回最终返回值。
该输出的结果是:
当然,您也可以使用产量直接返回结果。
记录用于创建不可用的数据类。在此之前,如果您需要创建一个存储数据的类,则通常需要先创建一个类,然后生成结构,Getter,setter,setter,setter,hashcode,equals和tostring等。或使用Lombok简化这些操作。
例如,定义一个人班:
让我们通过人类班级进行一些测试,例如创建两个对象,比较它们并打印这些操作。
假设我们只需要打印一些人的名称和年龄属性,并且记录后将变得非常容易。
记录也可以单独定义为文件定义,但是由于记录的使用非常紧凑,因此可以直接定义在需要的地方。
记录还具有一个构造函数,可以在构造函数中执行一些验证操作。
密封类使我们能够更好地控制哪些类可以扩展我定义的类。密封类可能对框架或中间件中的开发人员更有用。在该类可以扩展或最终的类别,只有这两个选项。
密封类可以控制哪些类可以继承超类。在Java 17之前,如果我们需要控制哪个类可以继承,我们可以更改类的访问级别,例如删除公共类,访问级别默认是默认值。例如,我们在包中定义以下三个类别:
然后,我们可以在另一个软件包中编写以下代码:
它可以定义,可以分配给实例,并且可以继承。
如果我们不希望将水果扩展到包装外,我们只能更改Java11版本中的访问权限并删除类的公共修饰符。尽管可以继承,但它也会导致汇编失败;在Java 17中,密封类可以解决此问题。
在定义期间,密封的关键字被声明为密封类,可以通过许可证指定类。
子类需要表明它是最终,非密封或密封的。父类无法控制子类是否可以继承。
通常,当我们使用实例时,通常会发生在需要判断的变量的类型中。如果符合指定类型,则将强制类型转换为新变量。
匹配实例模式后,可以缩写上述代码。
您可以在IF中处理类型的转换和变量声明,同时可以直接在IF中使用此变量。
因为结果仅在结果是时间时,可以在此处使用,因此可以在此处使用,但是它会编译并报告错误。
有用的NullPointTerExceptions可以节省我们遇到NPE时的分析时间。以下代码可能导致NPE。
在Java 11中,输出将显示NullPoInterException中发生的行号,但我不知道在呼叫过程中生成哪种方法,必须通过调试来找到。
在Java 17中,将准确显示NPE的精确位置。
Java 17添加了一种新模式进行格式化,该格式根据标准表示一天。
使用默认的英语环境每天打印几次:
输出结果:
如果是中文环境,输出结果是:
可以看出,我们的夜晚在英国和美国很和谐。
添加了一种工厂方法,该方法可以根据Unicode标准以紧凑和人类可读形式格式化数字。
短格式如下所示:
输出格式是:
长格式如下:
输出结果是:
如果您需要将流转换为列表,则需要通过调用收集方法来调用collectors.tolist()。代码非常漫长。
它将在Java 17中变得简单,可以直接调用。
此问题的内容使每个人都可以快速查看以前添加了一些LTS版本Java 11的语法特征。在这些语法更新中,还有一些功能,例如JVM,库,包装工具等。在Java 17中。。我没有一个人介绍它。您可以在OpenJDK的官方网站上查看它。