2017-08-24 46 views
-1

我想尽量减少低于10开关的情况下,但尝试了几次后,我无法。有人可以建议我该怎么做?如何避免在Java中有10个开关情况?

在此先感谢。

private int getCode(String digit) { 

    int keycode = 0; 

    switch (digit) { 
     case "0": 
      keycode = AndroidKeyCode.KEYCODE_0; 
     break; 

     case "1": 
      keycode = AndroidKeyCode.KEYCODE_1; 
     break; 

     case "2": 
      keycode = AndroidKeyCode.KEYCODE_2; 
     break; 

     case "3": 
      keycode = AndroidKeyCode.KEYCODE_3; 
     break; 
    } 

    return keycode; 
} 

感谢

+0

这篇文章也有一个不错的方法:https://codereview.stackexchange.com/questions/74743/long-switch-statement-to-lookup-fifty-something-commands – tima

+1

我不确定重复的问题有OP正在寻找的确切答案,即'返回(int)digit.charAt(0) - '0'+ AndroidKeyCode.KEYCODE_0;'(当然在检查空和垃圾输入之后)。 –

回答

-2

使用反射API。 example 如果您使用的是proguard,则必须同时编写proguard规则或禁用proguard。