【问题标题】:Eclipse: How to create Quick-Assist for If-else to Switch [duplicate]Eclipse:如何为 If-else 创建 Quick-Assist 以切换 [重复]
【发布时间】:2013-05-10 09:18:23
【问题描述】:

在 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;
}

【问题讨论】:

    标签: java eclipse ide


    【解决方案1】:

    有趣的问题。如果可以添加将if-else 转换为switch 的快速修复,那么Assist 如何将包含多个变量的boolean 表达式的if-else 语句转换为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;
       }
    }
    

    就个人而言,我不希望将带有更复杂的boolean 语句的if-else 转换为switch,因为生成的代码可能很难阅读并且(可能)不符合一些良好实践约定。在更简单的情况下,比如你发布的那个,它不是很困难,也不会花费你太多的时间和精力来转换它。

    【讨论】:

      猜你喜欢
      • 2012-02-15
      • 2011-02-24
      • 1970-01-01
      • 2021-10-18
      • 1970-01-01
      • 2021-06-30
      • 1970-01-01
      • 1970-01-01
      • 2014-08-08
      相关资源
      最近更新 更多