我需要帮助将If-case转换为switch语句,并且我正在使用enums。
我的枚举示例如下:
private enum FruitsType{
Apple("Apple"), Orange("Orange"), Mango("Mango"); }
我的方法包含If和Else-if语句如下:
private String getFruitsPrefMsg() {
String message = getMessage();
if (message == null) {
message = getOtherMessage(); }
if(FruitsType.Apple.toString()) {
//return something; }
else if(FruitsType.Orange.toString()) {
// return something; }
else if(FruitsType.Mango.toString()) {
// return something; }
}
不考虑代码中的逻辑,因为这只是我的代码的一个示例,有人可以帮我将上述if和else-if语句(包括检查null)转换为简单的切换案例,我会使用swtich需要最简单的代码。我想在这里使用switch,因为这是标准,我必须使用switch语句。
答案 0 :(得分:2)
我不明白你的条件,你根本没有使用获得的信息。
我会按如下方式制作枚举:
private enum FruitsType {
Apple,
Orange,
Mango
}
至于开关区,我可能会做类似的事情:
private String getFruitsPrefMsg() {
String message = getMessage();
if(message == null)
message = getOtherMessage();
try {
switch(FruitsType.valueOf(message)) {
case Apple:
//return something
case Orange:
//return something
case Mango:
//return something
}
} catch(IllegalArgumentException exception) {
//Message is not in the enum.
//Handle error
//You can return something here
}
//Or return something here
}
我知道try-catch块非常难看,但这是我能想到的最简单的解决方案。
祝你好运。