在Eclipse Juno中,我们有一个Quick-Assist用于转换Switch to If-else
。有没有办法为相反的操作添加快速修复或类似的快捷方式:转换If-else to Switch
?
例如转换:
if (kind == 1) {
return -1;
} else if (kind == 2) {
return -2;
} else {
return 0;
}
要:
switch (kind) {
case 1: return -1;
case 2: return -2;
default: return 0;
}
答案 0 :(得分:0)
有趣的问题。如果可以添加快速修复程序以将if-else
转换为switch
,那么Assist如何将包含多个变量的if-else
表达式的boolean
语句转换为{ {1}}陈述?
假设我们想将此switch
语句转换为if-else
:
switch
这将导致:
if (x == 1 && y == 1) {
//do something
} else if (x == 1 && y == 3) {
//do something else
} else if (x == 2 && y == 1) {
//and so on.
}
就我个人而言,我不想将switch (x) {
case 1 : {
switch (y) {
case 1: // do something
case 3: // and so on
}
break;
}
case 2 : {
switch (y) {
case 1: //do something else
}
break;
}
}
与更复杂的if-else
语句转换为boolean
,因为生成的代码可能非常难以阅读,并且(可能)不会符合一些良好实践惯例。在简单的情况下,就像您发布的那样,这并不是很困难,也不会花费太多时间和精力来转换它。