当前位置: 首页 > news >正文

record类型-Java 16

record是一种特殊的类,主要用于简化不可变数据载体的定义

record 记录名(组件列表) {// 可选:额外的方法、静态字段等
}

示例

// 定义一个Person记录
record Person(String name, int age) {}// 使用
public class Main {public static void main(String[] args) {Person p = new Person("张三", 25);System.out.println(p.name());  // 自动生成的访问器方法System.out.println(p.age());System.out.println(p);        // 自动生成的toString()}
}

主要特性

  1. 自动生成的方法

    • 规范构造函数(canonical constructor)

    • 组件访问器(如name()age()

    • equals()hashCode()

    • toString()

  2. 不可变性

    • 所有字段都是final的

    • 不能添加实例字段(只能有静态字段)

  3. 可以自定义

    • 可以重写自动生成的方法

    • 可以添加额外的方法

    • 可以实现接口

自定义示例

public class Main {public static void main(String[] args) {Point p1 = new Point(3, 4);System.out.println(p1.distanceFromOrigin()); // 输出 5.0Point p2 = new Point(-1, 5); // 抛出异常:坐标不能为负System.out.println(Point.ORIGIN); // 输出: Point[x=0, y=0]}
}record Point(int x, int y) {// 添加静态字段public static final Point ORIGIN = new Point(0, 0);// 添加方法public double distanceFromOrigin() {return Math.sqrt(x*x + y*y);}// 重写自动生成的访问器@Overridepublic int x() {return x > 0 ? x : 0;}// 自定义构造函数public Point {if (x < 0 || y < 0) {throw new IllegalArgumentException("坐标不能为负");}}
}

与普通类的区别

特性record普通类
目的数据载体通用
不可变性自动需要手动实现
样板代码自动生成需要手动编写
继承隐式继承Record类可自由继承
字段仅限记录组件可自由添加

使用场景

  1. 数据传输对象(DTO)

  2. 方法返回多个值

  3. 临时数据聚合

  4. 需要值语义的简单类型

相关文章:

  • 使用 PolarProxy+Proxifier 解密 TLS 流量
  • Stone 3D使用RemoteMesh组件极大的缩小工程文件尺寸
  • python实现鸟类识别系统实现方案
  • C++中 using 命名别名和命名别名模板的用法
  • 提升搜索可见度的基石:标题标签设置原则与SEO效能量化分析
  • 服务自动添加实例工具
  • 中国温室气体排放因子数据库
  • 高低温介电温谱测量系统在实际应用中有哪些具体的挑战?
  • java将pdf文件转换为图片工具类
  • 第六天 界面操作及美化(6.1 建立菜单及异步调用)
  • 纪念2024.10-2025.6飞牛os的6次系统崩溃
  • linux pcie【6】- epf驱动介绍
  • ONLYOFFICE协作空间API指南:使用JavaScript SDK为每个用户结构化协作房间
  • Linux服务器自动发送邮件
  • 提示词Prompts(2)
  • 图像处理算法的学习笔记
  • Python6.13打卡(day45)
  • YOLOV11 中的 DFL Loss解读
  • 如何运营一个专业的体育比分网站
  • 【DVWA系列】——xss(Stored)——High详细教程
  • 300元建站/百度客户服务电话是多少
  • 网站平台怎么建立的/百度快速收录账号购买
  • 做网站学哪个语言最好/seo技术优化整站
  • 做网站成都/武汉网站快速排名提升
  • 网站建设公司排名前十/今天中国新闻
  • 网站缺陷和优化的例子/培训机构网站