Language 入门

一行代码替代不可变数据载体的 30 多行样板代码。

✕ Java 8
public class Point {
    private final int x, y;
    public Point(int x, int y) { ... }
    public int getX() { return x; }
    public int getY() { return y; }
    // equals, hashCode, toString
}
✓ Java 16+
public record Point(int x, int y) {}
发现此代码有问题? 告诉我们。

一行定义

单行代码替代构造函数、getter、equals、hashCode、toString。

🔒

默认不可变

所有字段均为 final——没有 setter 的隐患。

🧩

模式友好

record 可与 switch 和 instanceof 中的解构模式配合使用。

旧方式
冗长的 POJO
现代方式
record
自 JDK
16
难度
入门
用 record 定义数据类
可用

自 JDK 16 起广泛可用(2021 年 3 月)

record 自动从组件列表生成构造函数、访问器(x()、y())、equals()、hashCode() 和 toString()。

分享 𝕏 🦋 in