• java档案类


    一、什么是档案类

    Java 档案类是用来表示不可变数据的透明载体,用来简化不可变数据的表达,提高编码效率,降低编码错误。

    二、档案类限制

    Java 档案类不支持扩展子句,用户不能定制它的父类。隐含的,它的父类是 java.lang.Record。父类不能定制,也就意味着我们不能通过修改父类来影响 Java 档案的行为。

    Java 档案类是个终极(final)类,不支持子类,也不能是抽象类。没有子类,也就意味着我们不能通过修改子类来改变 Java 档案的行为。

    Java 档案类声明的变量是不可变的变量。这就是我们前面反复强调的,一旦实例化就不能再修改的关键所在。

    Java 档案类不能声明可变的变量,也不能支持实例初始化的方法。这就保证了,我们只能使用档案类形式的构造方法,避免额外的初始化对可变性的影响。

    Java 档案类不能声明本地(native)方法。如果允许了本地方法,也就意味着打开了修改不可变变量的后门。

    三、档案类示例

    1. public record Circle(double radius) {
    2. //构造方法,可以用于参数检查
    3. public Circle {
    4. if (radius < 0) {
    5. throw new IllegalArgumentException("The radius of a circle cannot be negative [" + radius + "]");
    6. }
    7. }
    8. public double area() {
    9. return Math.PI * radius * radius;
    10. }
    11. }
    1. public static void main(String[] args) {
    2. //创建实例
    3. Circle circle = new Circle(6);
    4. //访问属性
    5. System.out.println(circle.radius()); //6.0
    6. //调用方法
    7. System.out.println(circle.area()); //113.09733552923255
    8. }

    和普通类比较差异

  • 相关阅读:
    【前端实例代码】使用html+css+JavaScript实现带有波浪跳跃动画的登录表单页面
    Yocto buildhistory介绍
    可能是最漂亮的Spring事务管理详解
    JavaScript typeof操作符确认数据类型
    Android绑定式服务
    C#获取声音信号并通过FFT得到声音频谱
    TiDB在线修改集群配置
    C++异常和断言
    (ICLR-2021)一幅图像相当于16X16个words:大规模图像识别的Transformer
    MVC模式简介
  • 原文地址:https://blog.csdn.net/qq_29752857/article/details/125624319