Geo*_*Geo 3 java refactoring loops
我有一组对象,我想按照它们被迭代的顺序进行一些操作.在该操作被调用之后,我想对它们执行其他操作.基本上,代码看起来像这样:
for(int i = 0;i < myobj.size();i++)
{
myobj.at(i).doSomething();
}
for(int i = 0;i < myobj.size();i++)
{
myobj.at(i).doSomethingElse();
}
Run Code Online (Sandbox Code Playgroud)
这看起来有点难看.我怎么能把它重写成更好的东西?操作的顺序应该保持不变.
dav*_*veb 24
我不知道myobj是什么,但如果是Iterable,那么你可以使用foreach循环:
for (Foo foo : myobj) {
foo.doSomething();
}
for (Foo foo : myobj) {
foo.doSomethingElse();
}
Run Code Online (Sandbox Code Playgroud)
如果不是Iterable,那么这样做也可能有助于其他代码.
如果绝对必须在不同的循环中进行这两个操作,请将循环重构为适当命名的方法,以便一目了然更容易理解:
createData();
saveData();
Run Code Online (Sandbox Code Playgroud)
使用 foreach 循环:
for (MyObject currentObject : myobj) {
currentObject.doSomething();
}
for (MyObject currentObject : myobj) {
currentObject.doSomethingElse();
}
Run Code Online (Sandbox Code Playgroud)