Skip to content

记录类是一种用于存储和管理数据的类。它通常用于跟踪对象的状态和操作,并将其保存到持久性存储器(如数据库)中或进行其他处理。记录类可以包含属性(字段)和方法,用于描述和操作对象的特征和行为。

在 Java 中,记录类是从 Java 14 版本开始引入的一种新的类的类型。它们提供了一种简洁的方式来定义和使用不可变的数据类。记录类自动生成了属性(字段)、构造函数、equals()方法、hashCode()方法和toString()方法等常用方法,从而减少了开发者的工作量。

使用记录类可以使代码更加清晰和易于维护。它们提供了一种简单的方式来定义数据模型,并自动处理常见的操作,如属性的访问、比较和打印等。以下是一个使用记录类的示例:

public record Person(String name, int age) {
    // 可以在记录类中添加自定义方法
    public void sayHello() {
        System.out.println("Hello, my name is " + name);
    }
}

// 创建记录类的实例
Person person = new Person("Alice", 25);

// 访问记录类的属性
System.out.println(person.name()); // 输出:Alice
System.out.println(person.age()); // 输出:25

// 调用记录类的自定义方法
person.sayHello(); // 输出:Hello, my name is Alice

记录类是不可变的,即它们的属性在创建后不能被修改。如果需要修改记录类的属性,需要创建一个新的记录类实例。这种不可变性有助于保持数据的一致性和可靠性。

在 Java 的记录类中,构造方法是自动生成的,并且是隐式的。记录类的构造方法用于初始化记录类的属性(字段)。它们在创建记录类的实例时被调用,并将传入的参数赋值给相应的属性。

记录类的构造方法

记录类的构造方法的参数列表是根据记录类的属性列表自动生成的。例如,如果记录类有两个属性nameage,那么自动生成的构造方法将有两个参数,分别对应这两个属性。 以下是一个使用记录类的示例,其中记录类有两个属性nameage

public record Person(String name, int age) {
    // ...
}

// 创建记录类的实例
Person person = new Person("Alice", 25);

在上面的示例中,记录类Person的构造方法将接收两个参数nameage,并将它们分别赋值给记录类的属性。

由于记录类的属性是不可变的,所以在构造方法中赋值后,它们的值将不能再被修改。这有助于确保记录类的实例在创建后保持不变性。

记录类的构造方法是隐式的,无法显式地定义或重写。如果您需要自定义构造逻辑或添加额外的验证,可以使用静态工厂方法或其他辅助方法来创建记录类的实例。