java - 整数列表 -> 长 switch/case - 更好的可读性

标签 java switch-statement code-readability

我有以下值(value)观:

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

整个代码中至少有 5 个方法使用了它们。 在一个地方有一个很长的 switch-case 列表,其中使用了这些值 以正确的方式分配String:

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 :

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

assignedString = assignments.get(iTyp);

关于java - 整数列表 -> 长 switch/case - 更好的可读性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26787572/

相关文章:

java - 如何使用java、Linux检查是否安装了特定软件

swift - 如何使按钮重置为默认状态?

refactoring - 将语句切换到while循环或while循环到case block ?

java - 如何引用实现泛型类接口(interface)的枚举

java - WAS 6.1 的 JPA 问题

java - 非 C 项目的跨平台自动构建

javascript - Switch case 未按预期运行 - 无法评估 case

c# 使用空检查重构 switch 语句

python - 如何简化一个重复的函数

类和模块方法的 Pythonic 使用