【问题标题】:How to automatically convert if-else if statement to switch如何自动将 if-else if 语句转换为 switch
【发布时间】:2015-02-01 03:05:58
【问题描述】:

在 IntelliJ 中是否有用 switch 替换 if-else if 语句的热键或简单方法?我不希望手动将 if-else if 语句转换为 switch。我希望能够突出显示 if-else if 语句并按下组合键或使用菜单按钮。

【问题讨论】:

    标签: java android intellij-idea


    【解决方案1】:

    更新:正如@christopheml 在 cmets 中指出的另一个答案,“用 Switch 替换 If”似乎在 IntelliJ 2018.1 中消失了。一个错误已提交here


    有名为“用 Switch 替换 If”和“用 If 替换 Switch”的 IntelliJ 意图。检查您的首选项以查看是否启用了这些选项。如果是这样,我希望您会看到一个快速修复选项(Option+Enter 在 Mac 上,Alt+Enter 在 Windows 上)只要 IntelliJ 可以自动处理从一个到另一个的转换。

    【讨论】:

    • 有同样的问题 - 它以前对我有用,所以我不确定发生了什么。我强调了 if-else 但它不提供替代品。 if-else 显然可以用开关替换。有什么方法可以强制搜索可替换的子句?
    • 我不知道,抱歉。
    • 如果是对字符串值的 switch 语句,比较的右侧需要是一个常量(静态最终),以便将 if 语句转换为 switch。
    【解决方案2】:

    我刚发现你必须点击第一个if,等待灯泡图标出现然后选择Replace if with Switch

    【讨论】:

    • 而且你必须在 Java - Editor in Preference 中打开“快速辅助灯泡”。
    【解决方案3】:

    Android 工作室(intelliJ 想法):

    将光标放在switch/if 语句上,然后:

    mac: 选项 + 返回

    赢:alt + 进入

    【讨论】:

    • 在第一个if
    【解决方案4】:

    结帐设置

    • “if”条件分支的最小数量:3
    • 仅建议使用 null 安全表达式

    【讨论】:

      【解决方案5】:

      如果它不再提供替换,可能是因为“意图”中禁用了功能。 (安卓工作室(IntelliJ))

      解决方法很简单:

      • 文件 > 设置 > 编辑器 > 意图 - 搜索:“替换开关”

      • 文件 > 设置 - 搜索:“替换开关”> 编辑器 > 意图

      并检查空白复选框

      【讨论】:

      • 即使在添加了上述选项之后..该选项不适合我..
      • 从 2018.1 版本开始,IntelliJ 没有“用 Switch 替换 If”的意图,而“用 If 替换 Switch”的意图仍然存在。
      【解决方案6】:

      在 Eclipse 中选择 if/switch 后,按 Ctrl+1 或右键单击 -> 会弹出快速修复和建议。

      【讨论】:

        【解决方案7】:
        1. 双击切换关键字进行选择
        2. 将出现左侧建议灯泡。
        3. 点击建议将 switch 替换为 if else。

        这适用于安卓工作室。它在我的情况下有效

        【讨论】: