java – 重构foreach到for循环

我有一个 Java的foreach循环(这里是简化版)
List<String> names = getNames();
for(String name:names) {
    doSomething(name);
}

有没有一种自动方式将其重构为传统的for循环?

我知道如何手动完成

List<String> names = getNames();
for(int i=0; i<names.size(); i++) {
    String name = names.get(i);
    doSomething(name);
}

正如您所看到的,for语句本身需要输入一些内容,并再次引入变量名称并为其赋值names.get(i).总的来说,手动编辑对我来说太容易出错了.

我为什么要这样做?我必须修复一个错误,修复是从索引1开始而不是索引0并在索引n-1结束而不是结束(遗憾的是我无法立即修复输入,我需要等待库更新如果那被认为是一个bug).

我试过了什么?我右键单击了for关键字并单击了“Refactor”,但是就我从上下文菜单条目中获取内容而言,那里的任何内容都不会为我工作.

为什么我认为这在理论上可行?因为Resharper for Visual Studio(C#)中存在类似的功能.

仅供参考:我正在使用Eclipse Luna SR 2(4.4.2)

解决方法

将鼠标悬停在for语句上,右键单击,快速修复(Ctrl 1),转换为索引循环.

应该管用!

相关文章

最近看了一下学习资料,感觉进制转换其实还是挺有意思的,尤...
/*HashSet 基本操作 * --set:元素是无序的,存入和取出顺序不...
/*list 基本操作 * * List a=new List(); * 增 * a.add(inde...
/* * 内部类 * */ 1 class OutClass{ 2 //定义外部类的成员变...
集合的操作Iterator、Collection、Set和HashSet关系Iterator...
接口中常量的修饰关键字:public,static,final(常量)函数...