linux cpu占用率如何看
278
2022-09-22
Java 16 新特性
文章目录
Java 16 新特性
1、instanceof 模式匹配2、Records3、Sealed Classes(密封类)预览
Java 16 新特性
Java 16 在 2021 年 3 月 16 日正式发布,在语法上的新特性更新比较多,主要是一些之前版本引入的预览特性正式发布。比如Java14中的打包工具、instanceof、Record类
Java 16 全部的新特性,请看官网:JDK 16 发行说明
Java各个版本的文档入口:Java平台,标准版文档
Java各个版本下载:模式匹配
改进 instanceof 在 Java 14 中已经提出,在 Java 15 中继续预览,而现在,在 Java 16 中成为正式功能。
在之前,使用 instanceof 需要如下操作:
if (obj instanceof String) { String s = (String) obj; // grr... ...}
多余的类型强制转换,而现在:
if (obj instanceof String s) { // Let pattern matching do the work! ...}
扩展阅读:Java 14 新特性介绍 - instanceof
2、Records
Record 成为 Java 16 的正式功能,下面是介绍 Java 14 时关于 Record 的介绍。
record 是一种全新的类型,它本质上是一个 final 类,同时所有的属性都是 final 修饰,它会自动编译出 public get hashcode 、equals、toString 等方法,减少了代码编写量。
示例:编写一个 Dog record 类,定义 name 和 age 属性。
package com.wlw;public record Dog(String name, Integer age) {}
Record 的使用。
package com.wdbyte;public class Java14Record { public static void main(String[] args) { Dog dog1 = new Dog("牧羊犬", 1); Dog dog2 = new Dog("田园犬", 2); Dog dog3 = new Dog("哈士奇", 3); System.out.println(dog1); System.out.println(dog2); System.out.println(dog3); }}
输出结果:
Dog[name=牧羊犬, age=1]Dog[name=田园犬, age=2]Dog[name=哈士奇, age=3]
这个功能在 Java 15 中进行二次预览,在 Java 16 中正式发布。
3、Sealed Classes(密封类)预览
Sealed Classes 再次预览,在 Java 15 新特性介绍文章里已经介绍过相关功能,并且给出了详细的使用演示,这里不再重复介绍。
下面是一段引用:
我们都知道,在 Java 中如果想让一个类不能被继承和修改,这时我们应该使用 final 关键字对类进行修饰。不过这种要么可以继承,要么不能继承的机制不够灵活,有些时候我们可能想让某个类可以被某些类型继承,但是又不能随意继承,是做不到的。Java 15 尝试解决这个问题,引入了 sealed 类,被 sealed 修饰的类可以指定子类。这样这个类就只能被指定的类继承。
而且 sealed 修饰的类的机制具有传递性,它的子类必须使用指定的关键字进行修饰,且只能是 final、sealed、non-sealed 三者之一。
扩展阅读:Java 15 新特性介绍
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~