https://www.liaoxuefeng.com/wiki/1252599548343744/1331429187256353
record类的作用是?
代替以前需要自定义的不变类(java14引入
用法?
public record Greeting(long id, String content) { }
可以编写Compact Constructor对参数进行验证;
public final class Point extends Record {
public Point(int x, int y) {
// 这是我们编写的Compact Constructor:
if (x < 0 || y < 0) {
throw new IllegalArgumentException();
}
// 这是编译器继续生成的赋值代码:
this.x = x;
this.y = y;
}
...
}
可以定义静态方法。一种常用的静态方法是of()方法,用来创建Point:
public record Point(int x, int y) {
public static Point of() {
return new Point(0, 0);
}
public static Point of(int x, int y) {
return new Point(x, y);
}
不变类的特点是?
不可变类是指这个类的实例一旦创建完成后,就不能改变其成员变量值,也就是不能改变对象的状态。
一个不变类具有以下特点:
- 定义class时使用final,无法派生子类;
- 每个字段使用final,保证创建实例后无法修改任何字段。
https://tobebetterjavaer.com/basic-extra-meal/immutable.html
record类是Java14引入的新特性,用于简化不可变类的创建。它提供了一个紧凑的构造函数,并自动生成getter方法、equals(),hashCode()和toString()。不变类是其实例创建后成员变量不可变的类,通常要求类和所有字段为final。使用不变类能确保数据安全,常见于创建常量或元组。文章讨论了如何定义和使用record类以及不变类的最佳实践。
604

被折叠的 条评论
为什么被折叠?



