java中Record关键字详解
本文最后更新于:2023年2月20日 下午
Java 14 引入了一个新的关键字 record,它是一种轻量级的数据传输对象(DTO)类,被设计用来快速定义不可变的数据对象,以简化Java程序员在开发数据传输对象时的代码量。相较于传统的Java类,record关键字可以更加简洁地定义一个数据传输对象。
record类是一个类声明,但在语法上类似于接口声明。在record类中,可以声明字段、方法、构造函数、静态初始化块等,但与普通的Java类不同的是,record类默认为不可变的(immutable),其字段和方法默认为 public final 和 public abstract,且record类不支持继承。
以下是一个record类的示例代码:
1 |
|
在上面的代码中,Person是一个record类,它包含两个字段:name和age。Person类还定义了一个sayHello()方法,用于输出该对象的名称和年龄信息。
相较于使用普通Java类来定义DTO,record类具有以下优点:
- 代码简洁:record类可以快速定义DTO,并且不需要编写大量的getter和setter方法。
- 不可变性:record类的字段默认是不可变的,可以防止因为修改对象属性而导致数据错误的问题。
- 自动生成方法:record类可以自动生成equals()、hashCode()和toString()等方法,可以方便地用于对象的比较和输出。
以下是一些参考链接:
- JEP 359: Records (Preview):https://openjdk.java.net/jeps/359
- Java 14 新特性:Records:https://www.jianshu.com/p/68e50f245df3
- A First Look at Records in Java 14:https://www.baeldung.com/java-14-records
java中Record关键字详解
https://baymax55.github.io/2023/02/20/java/java中Record关键字详解/