liujie
liujie
Published on 2025-04-21 / 3 Visits
0
0

JAVA - record

record 是 Java 14 引入并在 Java 16 中正式稳定的一种新型类,用来定义不可变数据载体(data carrier),主要用于简化“数据类”的定义。


🧠 简单来说,

record

 是什么?

record 是一种特殊的类,它自动帮你生成:

  • 所有字段的 private final 声明

  • 构造函数

  • getters 方法(名字就叫字段名)

  • toString()、equals()、hashCode() 方法


📦 使用场景

你有一组只负责存储数据的字段,不需要写很多样板代码(如构造函数、getter、toString 等),就可以用 record。

Example

public class RecordTest {

    public static void main(String[] args) {
        RecordTest recordTest = new RecordTest();
        Person person = new Person(new Person.Address("北京市朝阳区", "北京市"), new Person.Age(18));
        //编译不通过;报:无法将值赋给 final 变量 'street'
        //person.address.street="22";
        System.out.println(person.address.street());
    }

    public record Person(Address address,Age age){
        public record Address(String street, String city){}
        public record Age(int years){}
        public Person(Address address, Age age) {
            this.address = address;
            this.age = age;
        }
    }
}


Comment