Как преобразовать многомерный массив примитивов в массив многомерных объектов - PullRequest
1 голос
/ 19 сентября 2019

Я пытаюсь написать код, который будет принимать массив целых чисел и преобразовывать целые числа в нем в ключи массива объектов того же размера.Когда я запускаю его из класса метода main, я получаю исключение нулевого указателя.

В моем основном методе у меня есть 5 сеток (grid1, grid2 ... grid5) с данными в виде сетки int [] [].В одном из моих классов конструктор принимает сетку в качестве параметра, а затем вызывает метод createArrayFromArrayObject (int [] [] grid), который должен взять сетку из метода main, а затем преобразовать ее целые числа в ключи для объектаметод, используемый конструктором.

См. Ниже - я написал код вместе с тем, где появляется ошибка.Вызов определенных сеток из основного метода IDSearch: IDSearch ids = new IDSearch ();

            SearchNode g1 = new SearchNode(grid1);
            SearchNode g2 = new SearchNode(grid2);
            SearchNode g3 = new SearchNode(grid3);
            SearchNode g4 = new SearchNode(grid4);
            SearchNode g5 = new SearchNode(grid5);

            ids.goalSearch(g1);//I get an error message here
            ids.goalSearch(g2);
            ids.goalSearch(g3);
            ids.goalSearch(g4);
            ids.goalSearch(g5);


SearchNode(int [][] grid){
    nodesMatrix = createArrayFromArrayObject(grid);//and then here
    for (int i=0; i<15; i++) { 
        for (int j=0; j<15; j++) {
            if(nodesMatrix[i][j].getElement() == 2) {
                xStart = i;
                yStart = j;
            }
            if(nodesMatrix[i][j].getElement()==3) {
                xGoal=i;
                yGoal=j;
etc.etc. 

public static Node [][] createArrayFromArrayObject(int [][] grid) {
    Node [][] nodesMatrix= new Node[15][15];
    for(int i = 0; i < grid.length; i++){
        for(int j = 0; j < grid.length; j++) {
            nodesMatrix[i][j].setElement(grid[i][j]);//and then here
        }
    }
    return nodesMatrix;
};
//and it throws a null pointer exception.

Ошибка переходит от основного метода класса IDSearch к конструктору класса SearchNode в массив create изметод объекта массива.

Я пытаюсь выяснить, как это исправить, чтобы он получал доступ к данным сетки и не вызывал исключение нулевого указателя.

...