Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 整数列表->;长开关/外壳-更好的可读性_Java_Switch Statement_Code Readability - Fatal编程技术网

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
允许动态配置。事实上,我现在正在这么做。