2

クラスのメンバーとして多次元配列と、配列のすべての要素をループしてから操作する多くのメソッドがあるとしましょう。コードは次のようになります。

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());

可能であれば、このようなことを行うための最も近い代替手段は何ですか?

4

3 に答える 3