今日はとても面白い問題があります。配列を変更しようとしていますが、メソッドは呼び出されていない別の配列を変更します。
a)トラブルの原因となっている方法の一部
public static void place2(String output, int position,furniture furniture_array[], char room_grid[][]) {
int i=0;
int j=0;
furniture_array[position].setXY(i, j);
char grid1[][] = room_grid;
char grid2[][] = room_grid;
char grid3[][] = room_grid;
char grid4[][] = room_grid;
pasteToArray(i, j, grid1, furniture_array[position]);
}
b)pasteToArray
これは、input_arrayを受け取る非常に単純なメソッドであり、この配列では、オブジェクト値である配列を通過します。
public static char[][] pasteToArray(
int x, int y, char input_array[][], furniture furniture_to_be_placed) {
char[][] result=input_array;
for (int i = 0; i <= furniture_to_be_placed.getSize(); i++) {
for (int j = 0; j <= furniture_to_be_placed.getSize(); j++) {
result[x + i][y + j] = furniture_to_be_placed.furn_grid[i][j];
}
}
return result;
}
私の質問は何ですか?
- 入力A、B、結果CのメソッドがDを変更するのはなぜですか?(相対名)
自分で解決するために私がすでに行ったこと:-
- デバッグコード-問題を引き起こしているメソッドを見つけました
- 25分間の無力な叫びには罵倒が含まれます
- グローバル変数をチェック
- すべてのメソッド入力の名前を相対的なニュートラル名に変更します
誰かがこれから私を助けることができますか?