Language 中级

无需重复参数列表即可验证和规范化 record 字段。

✕ Java 16
public record Person(String name,
                     List<String> pets) {
    // Full canonical constructor
    public Person(String name,
                  List<String> pets) {
        Objects.requireNonNull(name);
        this.name = name;
        this.pets = List.copyOf(pets);
    }
}
✓ Java 16+
public record Person(String name,
                     List<String> pets) {
    // Compact constructor
    public Person {
        Objects.requireNonNull(name);
        pets = List.copyOf(pets);
    }
}
发现此代码有问题? 告诉我们。
✂️

减少重复

无需重复参数列表或手动赋值每个字段。

🛡️

验证

非常适合 null 检查、范围验证和防御性复制。

📖

意图更清晰

紧凑语法强调验证逻辑,而非样板代码。

旧方式
显式构造函数验证
现代方式
紧凑构造函数
自 JDK
16
难度
中级
紧凑规范构造函数
可用

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

record 可以声明一个省略参数列表的紧凑规范构造函数。编译器在函数体执行后自动将所有参数赋值给对应字段。

分享 𝕏 🦋 in