El método modifica el método fuera del alcance

Tengo un problema muy divertido hoy. Estoy tratando de modificar una matriz, pero el método modifica otra matriz en la que ni siquiera se invoca.

a) Parte del método que está causando problemas

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

Este es un método realmente simple que recibe input_array y en esta matriz pasará la matriz que es un valor de objeto.

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;
}

Cual es mi pregunta

  1. ¿Por qué el método con la entrada A, B y el resultado C modifica D? ( Nombres de familiares )

Lo que ya hice para resolverlo yo mismo:

  1. Código de depuración: se encontró un método que está causando problemas
  2. El llanto indefenso durante 25 minutos incluye jurar
  3. Se verificaron las variables globales
  4. Cambiar el nombre de todas las entradas de métodos a nombres neutros relativos

¿Alguien puede ayudarme a salir de esto?

Respuesta 1

Estoy usando Java 1.8.0_131, Mockito 2.8.47 y PowerMock 1.7.0. Mi pregunta no está relacionada con PowerMock, se lanza a un Mockito.when (...) matcher. Necesito una solución para burlarme de este método que es ...

¿Es posible cargar la configuración de arranque desde un archivo .json en lugar de .yaml o .properties? Al mirar la documentación, esto no es compatible de fábrica; me pregunto si es posible ...

¿Cómo puedo hacer algo como el siguiente código JavaScript, en Java? resultado var = getA () || getB () || getC () || '¡todos estaban indefinidos!'; Lo que quiero hacer es continuar evaluando ...

Tengo esta entrada: 5 es su realidad real. Nuestra primera línea es el número de cadenas que vendrán después. Y debería almacenarlo de esta manera (pseudocódigo): asociative_array = [2 => ['it'], 3 => ['our'], 4 = & ...