用于静态决赛列表的界面或类?

The*_*ego 2 java iterator interface constants

我正在维护一些利用接口的Java代码(让我们称之为BunchOfConstants)来简单地存储大量的公共静态最终字符串.有时,这些字符串名称会更改或添加/删除字符串名称.(这对维护来说有点令人头疼)

这个接口的唯一当前用途是在稍后的一个丑陋的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)
}
...
Run Code Online (Sandbox Code Playgroud)

我认为创建一个实现Iterable的类甚至是一个将这些数据存储在hashMap中的类会更优雅.

我无法弄清楚为什么原始开发人员决定使用这个设计的接口,因为接口从未在任何地方实际实现过.有没有人有任何意见?

你是否同意将这些成员作为常量的可迭代类更合适?

Joh*_*erg 5

我会考虑使用,enums因为常量不是类型安全的(例如,它们只是整数或字符串等).


Sur*_*ran 5

使用枚举.然后获取myenum.values(),然后在值上应用for-each循环.