Java 整数列表->;长开关/外壳-更好的可读性
我有以下价值观:Java 整数列表->;长开关/外壳-更好的可读性,java,switch-statement,code-readability,Java,Switch Statement,Code Readability,我有以下价值观: public int TYP_SOMEONE = 1, TYP_SOMETWO = 2, TYP_SOMESPECIAL = 433, TYP_SOMETHREE = 3, .., TYP_SOMENINETYNINE = 99; 在整个代码中,至少有5种方法使用了它们。 在一个地方有一个很长的开关案例列表,其中使用了这些值 要以正确的方式分配字符串s,请执行以下操作: switch ( iTyp ){ case 1: assignedString
public int TYP_SOMEONE = 1, TYP_SOMETWO = 2, TYP_SOMESPECIAL = 433,
TYP_SOMETHREE = 3, .., TYP_SOMENINETYNINE = 99;
在整个代码中,至少有5种方法使用了它们。
在一个地方有一个很长的开关案例列表,其中使用了这些值
要以正确的方式分配字符串
s,请执行以下操作:
switch ( iTyp ){
case 1:
assignedString = "one";
break
case 2:
assignedString = "two";
break;
}
我想缩短代码。做这件事的好方法是什么?我想到
枚举,但我想知道如何更改,因为在每个
类,该类使用变量类型的TYP_xxx并添加括号等
在…上,如果这些整数常量的范围不是太大,并且是连续的,则可以使用数组将整数映射到匹配字符串。否则,可以使用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);
Map assignments=newhashmap();
(1,“一”);
(2,“两”);
....
assignedString=assignments.get(iTyp);
您知道正确答案:enum。这不是很多工作,未来的工作会更容易,因为你做得对。把它做好;使用枚举。作为奖励,使用HashMap
允许动态配置。事实上,我现在正在这么做。