我正在维护一些 Java 代码,这些代码利用一个接口(interface)(我们称之为 BunchOfConstants)来简单地存储大量公共(public)静态最终字符串。有时,这些字符串名称会更改或添加/删除字符串名称。 (维护起来有点头疼)
当前此接口(interface)的唯一用途是在一个丑陋的 if/then 构造中与稍后的输入进行比较,如下所示:
if(BunchOfConstants.CONSTANT1.equals(whatImLookingFor)){
doSomeStuff(whatImLookingFor)
}else if(BunchOfConstants.CONSTANT2.equals(whatImLookingFor)){
doSomeStuff(whatImLookingFor)
}else if(BunchOfConstants.CONSTANT3.equals(whatImLookingFor)){
doSomeStuff(whatImLookingFor)
}
...
我认为创建一个实现 Iterable 的类或者甚至在 hashMap 中存储这些数据的类会更优雅。
我不明白为什么最初的开发人员决定在这个设计中使用接口(interface),因为该接口(interface)从未在任何地方实际实现过。有人有意见吗?
您是否同意将这些成员作为常量的可迭代类更合适?
最佳答案
使用枚举。然后获取 myenum.values(),然后对这些值应用 for-each 循环。
关于java - 静态 final 列表的接口(interface)或类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5472237/