クラスのメンバーとして多次元配列と、配列のすべての要素をループしてから操作する多くのメソッドがあるとしましょう。コードは次のようになります。
public class Baz {
private Foo[][] fooArray = new Foo[100][100];
public Baz() {
for (int i = 0; i < fooArray.length; i++) {
for (int j = 0; j < fooArray[i].length; j++) {
// Initialize fooArray
}
}
}
public void method1() {
for (int i = 0; i < fooArray.length; i++) {
for (int j = 0; j < fooArray[i].length; j++) {
// Do something with fooArray[i][j]
}
}
}
public void method2() {
for (int i = 0; i < fooArray.length; i++) {
for (int j = 0; j < fooArray[i].length; j++) {
// Do something else with fooArray[i][j]
}
}
}
// and so on
}
ループのコードは常に同じで、ループ内の操作のみが変更されるため、ループのコードを別の方法にリファクタリングする方法はありますか? できたらとてもいいですね
doInLoop(functionToExecute());
可能であれば、このようなことを行うための最も近い代替手段は何ですか?