我有一个
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),转换为索引循环.
应该管用!