相关疑难解决方法(0)

Java中if语句的长列表

对不起,我找不到回答这个问题的问题,我几乎可以肯定其他人已经提出了这个问题.

我的问题是我正在编写一些系统库来运行嵌入式设备.我有命令可以通过无线电广播发送到这些设备.这只能通过文字来完成.在系统库中我有一个线程来处理看起来像这样的命令

if (value.equals("A")) { doCommandA() }
else if (value.equals("B")) { doCommandB() } 
else if etc. 
Run Code Online (Sandbox Code Playgroud)

问题是它有很多命令会迅速失控.看起来很可怕,调试很痛苦,并且在几个月的时间里难以理解.

java design-patterns command-pattern

100
推荐指数
5
解决办法
3万
查看次数

带开关的Android编码(String)

我在eclipse上开发一个Android应用程序,当我尝试一些类似的代码

switch(String){
 ......
}
Run Code Online (Sandbox Code Playgroud)

它给我以下错误

Cannot switch on a value of type String for source level below 1.7. Only convertible int values or enum variables are permitted
Run Code Online (Sandbox Code Playgroud)

所以我将编译器更改为1.7,然后它给了我另一个错误

Android requires compiler compliance level 5.0 or 6.0. Found '1.7' instead. Please use Android Tools > Fix Project Properties.
Run Code Online (Sandbox Code Playgroud)

那么,有没有让switch(String)在Android应用程序中工作?或者我别无选择只能使用

if(){}
else if(){}
else if(){}
........
Run Code Online (Sandbox Code Playgroud)

java string android switch-statement

38
推荐指数
4
解决办法
5万
查看次数

重构if/else逻辑

我有一个带有千行if/else逻辑方法的java类,如下所示:

if (userType == "admin") {
     if (age > 12) {
          if (location == "USA") {
               // do stuff
          } else if (location == "Mexico") {
               // do something slightly different than the US case
          }
     } else if (age < 12 && age > 4) {
          if (location == "USA") {
               // do something slightly different than the age > 12 US case
          } else if (location == "Mexico") {
               // do something slightly different
          }
     }
 } else …
Run Code Online (Sandbox Code Playgroud)

java refactoring if-statement

35
推荐指数
5
解决办法
2万
查看次数