Jdk 14 分布已经有两个月了,分享一个新特性JEP 359: Records (Preview),详细信息可以进入https://openjdk.java.net/jeps/359查看,Records 就是一种类的新型申明形式,可以使我们非常简单的申明一个类,同时也有一些限制。目的就是为了简化代码,类似于Lombok的@Data注解,不过现在还是一个预览特性。
Records语法类似于这样
类名后面的括号可以写参数,然后一个类就创建完了。可以看到使用record可以省略很多代码。我们创建一个类使用一下这个新特性。
类的创建是这样子的
使用是这样子的
运行结果是这样的,可以看到他的toString()方法已经帮我们重写过了。
通过编译出来的文件,可以看到,
1)生成的类是 final 类型的,并且继承了:java.lang.Record,由于java是单继承,所以使用record申名的类不能继承其他类。;
2)生成的类成员变量全是 private final 类型的,成员变量的值不能进行更改;
3)自动生成了类构造器、toString()、hashCode()、equals(),以及类似 getter 的变量访问方法;
不知道这个特性会怎么发展,你希望怎么发展呢?