整数列表 - >长开关/外壳 - 更好的可读性

时间:2014-11-06 19:13:02

标签: java switch-statement code-readability

我有以下数值:

public int TYP_SOMEONE = 1, TYP_SOMETWO = 2, TYP_SOMESPECIAL = 433,
    TYP_SOMETHREE = 3, .., TYP_SOMENINETYNINE = 99;

在整个代码中,它们至少用于5种方法。 在一个地方有一个很长的开关案例列表,其中使用了这些值 以正确的方式分配String

switch ( iTyp ){
    case 1:
      assignedString = "one";
      break
    case 2:
      assignedString = "two";
      break;
}

我想缩短代码。有什么好办法呢?我想过 枚举,但我不知道如何,因为每个人都需要改变一项长期任务 使用TYP_xxx类的变量类和添加括号等等 上...

1 个答案:

答案 0 :(得分:2)

如果这些整数常量的范围不是太大,并且它是连续的,则可以使用数组将整数映射到匹配的字符串。否则,您可以使用HashMap进行映射。

例如:

String[] assignments = new String[500];
assignments[1] = "one";
assignments[2] = "two";
...

assignedString = assignments[iTyp];

或使用地图:

Map<Integer,String> assignments = new HashMap<Integer,String>();
assignments.put (1, "one");
assignments.put (2, "two");
....

assignedString = assignments.get(iTyp);