做网站找哪家又便宜又好,南昌网站建设优化,中秋节网页设计实训报告,厦门礼品网站商城制作案例record是一种特殊的类#xff0c;主要用于简化不可变数据载体的定义。
record 记录名(组件列表) {// 可选#xff1a;额外的方法、静态字段等
}
示例
// 定义一个Person记录
record Person(String name, int age) {}// 使用
public class Main {public static void main(S…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()}
}
主要特性 自动生成的方法 规范构造函数canonical constructor 组件访问器如name()、age() equals()和hashCode() toString() 不可变性 所有字段都是final的 不能添加实例字段只能有静态字段 可以自定义 可以重写自动生成的方法 可以添加额外的方法 可以实现接口
自定义示例
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[x0, y0]}
}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类可自由继承字段仅限记录组件可自由添加
使用场景 数据传输对象DTO 方法返回多个值 临时数据聚合 需要值语义的简单类型