Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Eclipse能否将if语句转换为if else if_Java_Eclipse_If Statement - Fatal编程技术网

Java Eclipse能否将if语句转换为if else if

Java Eclipse能否将if语句转换为if else if,java,eclipse,if-statement,Java,Eclipse,If Statement,我在Eclipse中使用Java 在我的应用程序中,有一个代码片段,它是多个if语句的长序列 最近我不得不研究这段代码&我发现这些多if语句可以转换为if-else-if-ladder 现在手动将其转换为if-else-if梯形图有些麻烦 Eclipse中是否有一些捷径可供我使用?用else-if查找并替换所有if,然后通过删除else修复第一个if上的编译器错误。确保你没有意外地改变任何你不应该做的事情 因为它的逻辑可能不同,所以我认为Eclipse没有这个功能。我知道IntelliJ有针对这

我在Eclipse中使用Java

在我的应用程序中,有一个代码片段,它是多个if语句的长序列

最近我不得不研究这段代码&我发现这些多if语句可以转换为if-else-if-ladder

现在手动将其转换为if-else-if梯形图有些麻烦


Eclipse中是否有一些捷径可供我使用?

用else-if查找并替换所有if,然后通过删除else修复第一个if上的编译器错误。确保你没有意外地改变任何你不应该做的事情

因为它的逻辑可能不同,所以我认为Eclipse没有这个功能。我知道IntelliJ有针对这些问题的检查,所以也许一个执行代码检查的插件可以帮助您重构

其次,如果它可以转换为if-else-if,那么它也可以转换为case,这取决于您正在查看的变量以及它是否相同。从Java7开始,字符串也可用。它也可能是可重构的,以便在枚举上进行切换

使用“查找/替换”对话框

将所有}\s*if替换为}else if

启用正则表达式

您可以选择所需的行并启用所选行


经过长时间的搜索,我终于在Eclipse中找到了捷径

我选择了所有if语句,按Ctrl+1右键单击并选择快速修复


它在if-else-if中为我提供了一个选项Join-if序列,这正是我想要的。

这段代码听起来有点混乱。您是否考虑过重构它以删除一些if语句?这对你和你之后的人来说可能是一个更好的方法。我认为没有。如果在每个If前面复制/粘贴一个else被认为是太多的工作,那么您的代码就有严重的问题-if系列和if-else-if梯形图之间有很大区别。希望你知道?这取决于需要使用什么逻辑。它们不是等价的。好吧,连续的if语句不一定能被if-elseif语句替换,因为这是一个非常特殊的需求,我怀疑是否有任何功能可以做到这一点。使用Find/Replace对话框。将所有}\s*if替换为}else if。启用正则表达式。您可以选择所需的行并启用所选行。我无法将其转换为开关大小写,因为该操作是在字符串上执行的&我使用的是Java 6。@RAS正如Vixen所建议的,如果您仅限于Java 7之前的版本,请将字符串转换为枚举。公认的答案很好地解释了这一点。@zEro好的,我明白了。作为代码重构的一部分,我将把字符串转换为枚举。谢谢你的回答,我这边的+1。但我认为约翰的答案需要更少的人工努力。@Vixen和你的答案就是这样。我肯定会使用Enums&switch。谢谢你的回答,我这边+1。但是我认为约翰的答案需要更少的人工操作。如果我没有试图关闭这个对话框来查看完整的答案,我会被诅咒的……哦,酷。我几乎看不到这个答案,我建议你取消接受当前接受的答案,改为接受这个。@Mikeffhay我知道这是我正在寻找的实际答案。但我接受了约翰的回答,因为当我不得不紧急解决问题时,这是一个很好的回答。这是我后来找到的解决方案。所以我认为johnchen902的答案值得接受,因为你的答案更好。我的只是一个黑客,如果有嵌套的if,它将无法工作。请接受你的回答。