在 Java 中,在一个子类中将变量设置为 Final 和 static,同时在其他子类中保持变量不变

2023-12-21

我有一个超类和两个扩展它的子类。我想初始化一个名为 radius 的变量,它可以在子类 A 中自由设置,但对于子类 B 总是相同的。我可以在每次创建对象 B 时初始化该变量,但我想知道是否可以使子类 B 中的变量 final 和 static,同时仍然能够在我的超类中实现 getter。我可能会实现更多的子类,它们的半径要么是最终的,要么是可变的。如果不是,我想知道解决我的问题的最优雅的解决方案是什么。这是一些示例代码,可以运行,但不是很好。

abstract class SuperClass {

    public double getRadius() {
        return this.radius;
    }

    protected double radius;
}

class A extends SuperClass{

    public void setRadius(double radius) { // Would like to put this setter in SuperClass for future subclasses.
        this.radius = radius;
    }
}

class B extends SuperClass{
    public B() {
        radius = 0.2; //Want to make this static and final only for this subclass.
    }
}

在一个子类中创建一个变量final和static,同时保留它 Java中其他变量

从技术上讲,你做不到。 字段要么是静态字段,要么是实例字段,不能同时是两者。
作为替代方案,覆盖getRadius() in the B您想要提供不同值的类:

@Override
public double getRadius() {
    return 0.2;
}

为了使这个常量受到尊重,您还应该重写此中的设置器B class:

@Override
public void setRadius(double radius) {   
   throw new UnsupportedOperationException();
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Java 中,在一个子类中将变量设置为 Final 和 static,同时在其他子类中保持变量不变 的相关文章

  • 使类只能从特定类实例化

    假设我有 3 节课class1 class2 and class3 我怎样才能拥有它class1只能通过实例化class2 class1 object new class1 但不是 class3 或任何其他类 我认为它应该与修饰符一起使用
  • 查询 MongoDB 集合中的字段。

    我正在尝试查询 mongodb 集合中的特定字段 这是我的代码和输出 Mongo m new Mongo DB db m getDB mydb DBCollection coll db getCollection student addin
  • 迭代函数可以调用自身吗?

    当观看下面的 MIT 6 001 课程视频时 讲师在 28 00 将此算法标记为迭代 但是 在 30 27 他说这个算法和实际的 递归 算法都是递归的 该函数正在使用基本情况调用自身 那么这次迭代情况如何 private int itera
  • 本地开发的 Azure Functions 扩展包版本问题

    我有一个带有队列触发器的 Java 11 Azure 函数 该函数在部署到 Azure 时按预期工作 并正确从定义的服务总线主题中提取消息 但是 运行相同的功能locally除非我回滚版本 否则不起作用Azure Functions 绑定扩
  • 即使在轴上进行自动量程调整,我也可以保留积分刻度线吗?

    我 偷 了一些代码here http fxexperience com 2012 01 curve fitting and styling areachart 拥有一个AreaChart我在 FXML 中使用了 平滑线条 它的工作原理如下
  • 在哪里保存选项值、重要文件的路径等[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我正在创建一个程序 需要设置一些选项值以及图像文件的一些路径 SQLite 数据库的路径 有关各种按钮上文本的一些信息 有关要使用哪个数据库的信
  • 这个等待通知线程语义的真正目的是什么?

    我刚刚遇到一些代码 它使用等待通知构造通过其其他成员方法与类中定义的线程进行通信 有趣的是 获取锁后 同步范围内的所有线程都会在同一锁上进行定时等待 请参见下面的代码片段 随后 在非同步作用域中 线程执行其关键函数 即 做一些有用的事情1
  • 在java中将字符串日期转换为美国格式

    我有下面的代码 其中日期为字符串类型 我必须将其设置为美国格式 所以下面我已经展示了它 private static final SimpleDateFormat usOutputDate new SimpleDateFormat MM d
  • 如何在 HandlerInterceptorAdapter 中添加 HttpServletRequest 标头?

    我正在尝试将授权标头添加到我的请求中 作为我们切换环境时的临时解决方法 我试图在扩展 HandlerInterceptorAdapter 的拦截器中处理它 我使用 MutableHttpServletRequest 类制作here http
  • 在grails控制器中识别ajax请求或浏览器请求

    我正在开发一个使用大量ajax的grails应用程序 如果请求是ajax调用 那么它应该给出响应 这部分正在工作 但是如果我在浏览器中输入URL 它应该带我到主页 索引页面而不是请求的页面 下面是ajax调用的示例gsp代码
  • java setFullScreenWindow 在 Mac 中隐藏登录对话框

    我使用的是全屏窗口 类似于屏幕保护程序 使用这里的方法 GraphicsEnvironment getLocalGraphicsEnvironment getDefaultScreenDevice setFullScreenWindow t
  • Java:SortedMap、TreeMap、可比较?如何使用?

    我有一个对象列表 需要根据其中一个字段的属性进行排序 我听说 SortedMap 和 Comparator 是实现此目的的最佳方法 我是否要与正在排序的类实现 Comparable 还是创建一个新类 如何实例化 SortedMap 并传入
  • 具有 JPA 持久性的 Spring 状态机 - 存储库使用

    我试图弄清楚如何轻松使用 Spring 状态机 包括使用 JPA 进行持久化 这是我正在处理的问题 不兼容的数据类型 工厂和持久性 在程序的某个时刻 我想使用连接到用户的状态机 有用于此目的的存储库 项目spring statemachin
  • Struts 1 到 Spring 迁移 - 策略

    我有一个legacy银行应用程序编码为Struts 1 JSP现在的要求是迁移后端 目前为 MVC to Springboot MVC 后续UI JSP 将迁移到angular Caveats 1 后端不是无状态的 2 会话对象中存储了大量
  • 正确签名的 JNLP 应用程序无法在 Java 7 中运行

    我有一个 JNLP 应用程序 由于证书过期需要更新 我有一个经过 CA 验证的新证书 我已将新证书导入到我的密钥库中 我已导入完整的证书链 我的构建文件对构建中的 jar 进行签名和时间戳
  • 如何在不反编译的情况下更改已编译的.class文件?

    我想更改 class 文件方法 我安装 JD Eclipse Decompiler 并打开 class 文件 我添加了一些代码并保存 class 文件 但是 class 文件没有改变 我不知道如何使用反编译器 如果可能的话 如何在不使用反编
  • __callStatic():从静态上下文实例化对象?

    我对 PHP 中的 静态 和 动态 函数和对象如何协同工作感到困惑 特别是在 callStatic 方面 callStatic 的工作原理 您可以有一个普通的班级 MyClass 在班级内您可以 放置一个名为 callStatic 的静态函
  • Axis2 错误:要输出的文本中的空白字符 (0x4) 无效

    我创建了一个 Java 客户端 使用 Axis2 1 7 6 作为代码生成器与 SOAP Web 服务进行交互 问题在于客户端的某些输入抛出异常并显示以下消息 org apache axis2 AxisFault Invalid white
  • Java中单例的其他方式[重复]

    这个问题在这里已经有答案了 只是我在考虑编写单例类的其他方法 那么这个类是否被认为是单例类呢 public class MyClass static Myclass myclass static myclass new MyClass pr
  • mybatis:使用带有 XML 配置的映射器接口作为全局参数

    我喜欢使用 XML 表示法来指定全局参数 例如连接字符串 我也喜欢 Mapper 注释 当我尝试将两者结合起来时 我得到这个例外 https stackoverflow com questions 4263832 type interfac

随机推荐

  • .Net 5 后台服务的 MSI 安装程序

    我有一个 Net 5 控制台应用程序 我试图将其作为 Windows 服务运行 我已阅读有关如何执行此操作的所有在线文章并成功完成 即 使用BackgroundService 问题是 我想要一个 MSI 安装程序来部署它 并且我读过的有关在
  • 在 Visual Basic 中打印(多)维数组

    有没有一种简单的方法可以将可能是多维的数组打印到 VB NET 中的控制台以进行调试 即仅检查数组的内容是否正确 来自 Objective C 背景NSLog函数打印格式相当良好的输出 例如一维数组的以下内容 myArray 0 gt He
  • 了解 applicationSignificantTimeChange:

    我发现有时我的应用程序 Cocos2d 游戏 在显着的时间变化后会出现 错误 例如 case 1 当应用程序进入后台并在几分钟后重新启动它时 我可以看到加载图像然后应用程序 游戏恢复 case 2 当应用程序进入后台并在很长一段时间后更改应
  • __NSAutoreleaseNoPool():类 General 自动释放的对象 0x753c2f0,没有适当的池 - 只是泄漏

    我已经有一段时间没有注意到我的控制台输出了 我突然注意到很多奇怪的错误 NSAutoreleaseNoPool Object 0x753c2f0 of class General autoreleased with no pool in p
  • 向行值添加尾随零以确保有 10 位数字

    如果我有一个数据帧 其中每行中的最大数字为 10 但由于尾随零已被截断 某些 ID 小于 10 那么如何在 python 中添加尾随零以确保每行中有 10 位数字 ID 1234567689 123456768 12345676 ID 12
  • Magento:使用分组子句过滤集合

    我想用分组子句过滤集合 在 SQL 中 这看起来像 SELECT FROM my table WHERE col1 x AND col2 y OR col3 z 我如何将其 翻译 为过滤集合 gt addFieldToFilter Than
  • Jenkins 无法使用 SVN 凭据或下载新插件/新版本

    谁能建议如何解决这两个问题 无法升级Jenkins和SVN插件 无法连接到svn 我正在 Windows 64 位机器上设置 Jenkins 它被配置为作为 Windows 服务运行 我们在 Windows 7 64 位操作系统上运行它 詹
  • 如何在Springboot Restcontroller中使用PUT方法?

    正在使用 Spring boot 开发一个应用程序 我尝试了所有表示动词 如 GET POST DELETE 它们也都工作正常 使用 PUT 方法 Spring Boot 不支持 我是否需要添加任何新配置 Put方法仅适用于没有任何参数的请
  • 模型中包含的辅助方法会产生“未定义的局部变量或方法‘config’”错误

    我有一个非常复杂的辅助方法 也需要在模型中 我已经通过在模型中包含一些助手来完成此操作 但相同的方法不适用于 Rails 3 0 7 module ContentsHelper def content teaser record it us
  • 为什么转换为单击一次应用程序或exe后不进行日志记录?

    我创建了一个控制台应用程序 其中使用 log4net 正确完成日志记录 但是在发布我的应用程序 单击一次应用程序或 exe 后 即使我的应用程序工作正常 日志记录也无法正常工作 有什么方法可以让 log4net 在我的最终点击应用程序中工作
  • Linux邮件添加内容类型标头不起作用

    我在用mail从我的 Linux 系统发送邮件的命令 我遇到的问题是邮件的内容类型始终为Content Type text plain charset us ascii 我正在发送 html 内容 它显示为纯文本 这就是我尝试过的 1 bo
  • 纯文本文档的字符编码未声明 - mootool 脚本

    我刚刚注意到有一个warning当我在 FireFox 浏览器上查看 mootool js 脚本时 会弹出消息 警告消息是 纯文本文档的字符编码未声明 文档在某些浏览器中会呈现乱码 如果文档包含来自外部的字符 则配置 US ASCII 范围
  • 在 Sonata 管理列表中使用自定义列

    我使用 Symfony 4 1 创建了一个项目 并安装了 Sonata Admin Bundle 在我的类别列表中 我尝试添加与类别字段不相关的列 所以我做了 Admin CategoryAdmin php protected functi
  • 类成员和显式堆栈/堆分配

    假设我们有 4 个类 如下所示 class A public A void m B private B m B class B public B void m i 1 private int m i class C public C voi
  • TextView文本缩小到给定宽度

    我的活动中有一个文本视图字段 其字体大小为 16 其文本是通过代码设置的 假设如果我有一个大文本 它应该缩小该数据 即字体大小减小 而不是转到下一行 我该怎么做
  • Visual Basic 中的屏幕尺寸

    如何在 Visual Basic 中访问屏幕尺寸 我在网上查看过 它说要使用 Screen width 和 Screen length 但它无法识别这些属性 有什么提示吗 在VB中你可以使用Screen Width and Screen H
  • pl/sql - 集合可以循环遍历列名吗?

    以下代码的输出是 LAT MISC SID NO MIN LENGTH 1 2 1 1 MAX LENGTH 6 6 4 2 输出正如我所期望的那样 但是无论如何都可以使用索引 即j 循环遍历列而不是执行RESULTS I 最长长度 结果
  • 如何使用 Azure Functions 解析表单数据

    我正在尝试在 Azure 函数中获取表单数据 public static async Task
  • 使用指令类静态函数?

    我正在使用一个具有lot名为的类中的函数TCODConsole作为静态函数 现在我认为它在命名空间中 所以我写道 using namespace TCODConsole 然后我发现TCODConsole不是命名空间 而是类 有没有一种方法可
  • 在 Java 中,在一个子类中将变量设置为 Final 和 static,同时在其他子类中保持变量不变

    我有一个超类和两个扩展它的子类 我想初始化一个名为 radius 的变量 它可以在子类 A 中自由设置 但对于子类 B 总是相同的 我可以在每次创建对象 B 时初始化该变量 但我想知道是否可以使子类 B 中的变量 final 和 stati