1、介绍
在许多 java 应用程序中,在对象之间传递不可变数据是很常见的。
在Java14之前,我们需要创建一个带有字段和方法的类,随着Java14的发布,我们现在可以使用 record 关键字来解决这些问题。
下面我将介绍record关键字的基本原理,包括其用途、生成的方法和支持的能力。
2、目的
通常我们写一个class可以来承载一些数据,比如 数据库 查询结果,或是通过service获取的返回结果。大部分时候,这些数据是 不可变 的,因为不可变性确保了数据的有效性,而无需考虑并发。
为了创建一个不可变类,我们需要做以下几件事:
1. 每个字段是private并且是final的
2. 每个字段需要有个getter方法
3. 需要有个构造方法并且参数包含所有字段
4. 还需要包含所有字段的equals方法,以及对应的hashcode方法和toString方法
比如我们需要创建一个Person类,包含name和address两个字段:
public class Person { private final String name; private final String address; public Person(String name, String address) { this.name = name; this.address = address; } @Override public int hashCode() { return Objects.hash(name, address); } @Override public boolean equals(Object obj) { if (this == obj) { return true; } else if (!(obj instanceof Person)