在 Intellij 快捷方式中快速“if-else”翻转

我正在尝试重构现有的遗留代码,我注意到我有很多地方具有以下模式:

if (condition) {
    // lot of code
} else {
    throw new SomeException();
}

我想知道是否有一种快速的方法来翻转if-else构造,以轻松地将当前形式重构为如下所示:

if(!condition) throw new SomeException();
// lot of code

我想删除不必要的嵌套,并在函数开始时进行检查。


答案 1

将插入符号放在“if”上,按+,从菜单中选择“反转'if'条件”。AltEnter


答案 2

对于现场编辑,请使用@Yole的建议。

但是,如果整个项目中有很多位置,则可以使用“编辑=>查找=>以下模板在结构上替换(从IJ附带的示例中推导出来,并在v2017.3.4中进行了测试):

搜索模板:

if ($Condition$) {
  $ThenStatement$;
} else {
  throw new $Constructor$($Argument$);
}

替换模板

if (!$Condition$) throw new $Constructor$($Argument$);

$ThenStatement$;

变量

点按该按钮,然后选择变量并选中该框,使其应用于多行(或键入所需的任何值):Edit variablesThenStatementUnlimited

Variables

结果

IJ Structural Replace


推荐