重构 - 应合并可折叠 "if" 语句
Refactoring - Collapsible "if" statements should be merged
我正在尝试清理遗留代码,发现有很多 if 条件代码可以合并。
例子-
if (file != null) {
if (file.isFile() || file.isDirectory()) {
/* ... */
}
}
这可以重构为,
if (file != null && (file.isFile() || file.isDirectory())) {
/* ... */
}
手动执行此更改很痛苦。因此,我试图检查 intelliji 中的检查工具和模板重构,以帮助我进行批量代码重构。
也找不到这个日食IDE。
请指教,Intelliji/Eclipse中是否有这个
的选项
在 IntelliJ IDEA 中将文本光标放在第一个 if
关键字上,按 Alt+Enter 并调用 Merge nested 'if's
.
您还可以使用结构搜索和替换来批量执行此操作。使用以下搜索模式:
if ($a$) {
if ($b$) {
$statement$;
} else $void$;
} else $void$;
点击Edit Variables...
,将statement
的最小和最大计数设置为0,∞
。同时将 void
的最小和最大计数设置为 0,0
使用以下替换模式:
if (($a$) && ($b$)) {
$statement$;
}
请注意,此替换在某些情况下会引入多余的括号,以防止更改代码的语义。这些可以稍后通过调用 Run Inspection by Name
和 运行 Unnecessary parentheses
检查再次删除。
AutoRefactor Eclipse 插件可以为您批量完成。
参见 http://autorefactor.org/html/samples.html 和 select CollapseIfStatementSample.java
。您可以对整个文件、包甚至项目执行此操作。
还有一个重构来删除不必要的括号:SimplifyExpressionSample.java
(参见例如第 144 行)。
我正在尝试清理遗留代码,发现有很多 if 条件代码可以合并。
例子-
if (file != null) {
if (file.isFile() || file.isDirectory()) {
/* ... */
}
}
这可以重构为,
if (file != null && (file.isFile() || file.isDirectory())) {
/* ... */
}
手动执行此更改很痛苦。因此,我试图检查 intelliji 中的检查工具和模板重构,以帮助我进行批量代码重构。
也找不到这个日食IDE。
请指教,Intelliji/Eclipse中是否有这个
的选项在 IntelliJ IDEA 中将文本光标放在第一个 if
关键字上,按 Alt+Enter 并调用 Merge nested 'if's
.
您还可以使用结构搜索和替换来批量执行此操作。使用以下搜索模式:
if ($a$) {
if ($b$) {
$statement$;
} else $void$;
} else $void$;
点击Edit Variables...
,将statement
的最小和最大计数设置为0,∞
。同时将 void
的最小和最大计数设置为 0,0
使用以下替换模式:
if (($a$) && ($b$)) {
$statement$;
}
请注意,此替换在某些情况下会引入多余的括号,以防止更改代码的语义。这些可以稍后通过调用 Run Inspection by Name
和 运行 Unnecessary parentheses
检查再次删除。
AutoRefactor Eclipse 插件可以为您批量完成。
参见 http://autorefactor.org/html/samples.html 和 select CollapseIfStatementSample.java
。您可以对整个文件、包甚至项目执行此操作。
还有一个重构来删除不必要的括号:SimplifyExpressionSample.java
(参见例如第 144 行)。