⚡ 编程实验室🏗️ HTML🎨 CSS⚡ JavaScript🐍 Python🗄️ SQL☕ Java⚛️ React💚 Vue🟢 Node.js⚙️ C语言🐘 PHP🐹 Go🔷 TypeScript🐬 MySQL🔧 C++🎯 C#🦀 Rust🅱️ Bootstrap💡 jQuery🎸 Django🍃 MongoDB👗 Sass🎪 Kotlin📊 R语言📋 XML📊 Excel🐘 PostgreSQL🐳 Docker🅰️ Angular🎮 游戏🏠 网站首页

Java Record 类:不可变数据载体

学习使用 record 关键字简洁地创建纯数据类,自动生成构造器、equals、hashCode 和 toString。 · 难度:入门 · +15XP

什么是 Record?

Record 是 Java 14 引入的预览特性,在 Java 16 正式发布。它是一种特殊的类,用于透明地承载不可变数据。编译器自动生成构造器、访问器、equals、hashCode 和 toString。

基本语法

public record Point(int x, int y) {}

// 使用 Point p = new Point(3, 4); System.out.println(p.x()); // 注意:访问器名为 x(),不是 getX() System.out.println(p); // Point[x=3, y=4]

自定义行为

可以在 record 体中添加静态方法、实例方法或紧凑构造器(用于校验):

public record Range(int min, int max) {
    // 紧凑构造器
    public Range {
        if (min > max) throw new IllegalArgumentException("min > max");
    }

public boolean contains(int value) { return value >= min && value <= max; } }

Record 与普通类的对比

特性Record普通类
不变性默认不可变需要手动设置
样板代码极少较多(getter/setter等)
继承不能继承其他类可继承
适用场景数据传输对象(DTO)、值对象复杂业务逻辑

练习提示

在 starter_code 中定义一个 Student record,包含 name 和 id 字段,并在 main 中创建实例打印。

Ctrl+Enter
🚀 升级VIP
解锁全部课程+AI助手

🏆 学习排行

加载中...

📊 统计

📖 133 篇
0 完成
🔥 0