Eclipse重构Iterator /同时foreach

ren*_*nke 5 java eclipse

有谁知道是否有一种简单的方法来重构代码以使用foreach迭代集合而不是while/Iterator组合?

例:

我有:

Iterator<MyObject> iterator = list.iterator();
while (iterator.hasNext()) {
   MyObject myObject = iterator.next();
   // do stuff
}
Run Code Online (Sandbox Code Playgroud)

而且我要:

for (MyObject myObject : list) {
   // do stuff
}
Run Code Online (Sandbox Code Playgroud)

是的,我知道我不会得到任何性能提升.我只是希望它不那么冗长,因为我喜欢:)

sam*_*cde 0

假设所有出现的迭代代码都与您的示例类似,请尝试使用查找并替换为以下正则表达式。

寻找:

Iterator<([a-zA-Z0-9_]{1,})> [a-zA-Z0-9_]{1,} = ([a-zA-Z0-9_]{1,})\.iterator\(\);\R[\t]{1,}while \(iterator\.hasNext\(\)\) \{\R[\t]{1,}[a-zA-Z0-9_]{1,} ([a-zA-Z0-9_]{1,}) = iterator\.next\(\);
Run Code Online (Sandbox Code Playgroud)

代替:

for($1 $3 : $2) {
Run Code Online (Sandbox Code Playgroud)