java - 静态 final 列表的接口(interface)或类?

标签 java interface iterator constants

我正在维护一些 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/

相关文章:

java - 是否有适用于 NetBeans 或 Eclipse 的 ICEfaces Maven 原型(prototype)?

java - 出现空指针异常但不知道如何修复它

java - 服务中的 EditText 值

c# - 当某些方法不会被使用/不实现时,使用接口(interface)还是抽象类?

json - 读取 map[string]interface{} 中的数据

c++ - 迭代器上的 vector 下标超出范围

Java POI XSSF VLookup 公式

java - 为什么此代码使用接口(interface)给我编译时间错误以及如何实现此代码?请解释?

java - 从头到尾遍历 LinkedList

scala - 如何在scala中使用迭代器根据长度内存高效地做出决策