record可以快速生成一个类,并且具有getter和AllArgsConstructor的功能,但是却没有set方法,属性值不可修改。它的主要应用场景是什么?
public record User(String userName, String address, Integer age) { }
record可以快速生成一个类,并且具有getter和AllArgsConstructor的功能,但是却没有set方法,属性值不可修改。它的主要应用场景是什么?
public record User(String userName, String address, Integer age) { }
好像就是类似enum枚举类
不是枚举。只是简单的“数据对象”,只用来存储数据。
你只需要定义对象的字段,它会“自动地生成” 字段的getter/setter方法,生成构造函数,自动复写equals
。。。等等。
类似于Lombok
干的活儿,用Record
就可以替代了。
只有getter,没有setter,也没有无参构造
哦对对,默认是final
的,无参构造我忘记了。我还没用过这个东西,有点别扭。
DataClass
record
关键字是用于创建简单的、不可变的数据类型的。它可以用来定义一个类,这个类中只包含一些简单的属性,并且通常不包含任何行为(方法)。一个 record
实例表示一个由属性值组成的结构数据,类似于一个元组。
例如,你可以使用 record
定义一个表示用户信息的类,如下所示:
Copy code
public record User(String name, String email) {}
这个 User
类只包含两个属性: name
和 email
。由于 record
定义的类是不可变的,所以它的属性也是不可变的。
当你使用 record
来定义一个类时,你不需要实现任何方法。例如,上面的 User
类中并没有 getName
方法,但是你可以直接通过下面的方式来访问它的 name
属性:
Copy code
User user = new User("Alice", "alice@example.com");
String name = user.name();
与传统的类定义相比, record
的优点在于它能够更简单、更清晰地表示一组数据。你可以使用它来定义领域模型中经常使用的数据类型,例如表示坐标、电话号码、日期等信息的类。另外,由于 record
类是不可变的,所以它们更加安全,避免了混淆数据类型的属性值的风险。
总的来说, record
关键字的主要用途是用于定义简单的、不可变的数据类型。它能够让你更简单、更清晰地表示一组数据,并且提供了一些编译时和运行时的优点。你可以在领域模型中使用 record
来定义经常使用的数据类型,也可以在其他场景中使用它来简化类的定义。
懂了,谢谢