2014-11-06 22 views
0

我有以下值:整數列表 - >長開關/凱斯 - 更好的可讀性

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

它們在整個代碼中至少5種方法使用。 在一個地方,還有的地方使用這些值 分配String正處於成長的道路很長的switch-case列表:

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

我想縮短代碼。什麼是這樣做的好方法?我想過 枚舉,但我不知道怎麼樣,因爲這是一個艱鉅的任務,在使用TYP_xxx變量的類型中的每個 類改變,並添加括號就這麼 ...

+2

你知道正確的答案:枚舉。這不是那麼多工作,而且未來的工作會更容易,因爲你做得對。做對了;使用枚舉。 – 2014-11-06 19:15:36

回答

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); 
+0

作爲獎勵,使用'HashMap'允許動態配置。我現在確實在做這件事。 – PaulProgrammer 2014-11-06 19:17:09