java中Record关键字详解

本文最后更新于:2023年2月20日 下午

Java 14 引入了一个新的关键字 record,它是一种轻量级的数据传输对象(DTO)类,被设计用来快速定义不可变的数据对象,以简化Java程序员在开发数据传输对象时的代码量。相较于传统的Java类,record关键字可以更加简洁地定义一个数据传输对象。

record类是一个类声明,但在语法上类似于接口声明。在record类中,可以声明字段、方法、构造函数、静态初始化块等,但与普通的Java类不同的是,record类默认为不可变的(immutable),其字段和方法默认为 public final 和 public abstract,且record类不支持继承。

以下是一个record类的示例代码:

1
2
3
4
5
public record Person(String name, int age) {
public void sayHello() {
System.out.println("Hello, I'm " + name + " and I'm " + age + " years old.");
}
}

在上面的代码中,Person是一个record类,它包含两个字段:name和age。Person类还定义了一个sayHello()方法,用于输出该对象的名称和年龄信息。

相较于使用普通Java类来定义DTO,record类具有以下优点:

  • 代码简洁:record类可以快速定义DTO,并且不需要编写大量的getter和setter方法。
  • 不可变性:record类的字段默认是不可变的,可以防止因为修改对象属性而导致数据错误的问题。
  • 自动生成方法:record类可以自动生成equals()、hashCode()和toString()等方法,可以方便地用于对象的比较和输出。

以下是一些参考链接:


java中Record关键字详解
https://baymax55.github.io/2023/02/20/java/java中Record关键字详解/
作者
baymax55
发布于
2023年2月20日
许可协议