gpt4 book ai didi

Java:子类化 ResourceBundle

转载 作者:太空宇宙 更新时间:2023-11-04 08:32:57 24 4
gpt4 key购买 nike

假设我有一些 ResourceBundle 实例:

ResourceBundle bundle = getBundle();
...
some more code that does stuff with bundle
...

我想知道bundle是否有特定的 key 。不幸的是,我使用的所有方法(containsKey()、keySet() 等)还会检查父包中的 key 。我想要使​​用的方法是handleKeySet(),它是 protected ,因此不可见。为了解决这个问题,我能想到的唯一解决方案是创建ResourceBundle的子类并实现getKeys(),这样它只返回当前包的键并排除父包的键。我开始怀疑这个解决方案的部分可能是由于我对继承的理解困惑。我的问题是..这似乎是正确的方法吗?如果是这样,任何提示或正确方向的插入将不胜感激。

最佳答案

理论上,当您创建子类时,您不会改变继承的行为,您所做的只是通过使其更具体地满足您的需求来“改进”它。

例如,您可以将 GregorianCalendar 扩展到 MyGregCal,以便使用它来计算与给定日期相对应的黄道带符号。但您应该避免为了计算儒略历等目的而改变它。为什么?因为每个接受 GregorianCalendar 的方法都将接受 MyGregCal,并期望它提供 GregorianCalendar 的功能。如果不这样做,那么坏事(更糟糕的是,意外坏事)就会随处发生。

因此,如果您无法在不破坏父类的契约的情况下获得所需的功能,那么您应该寻找其他地方。从头开始编写类,或者从更简单的父类(Properties?)

关于Java:子类化 ResourceBundle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7086194/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com