Ошибка "']' ожидаемого" при назначении значения элементу 2d массива - PullRequest
0 голосов
/ 06 марта 2020

Когда я пытаюсь присвоить значение элементу 2d-массива, это выдает мне «']' ожидаемую" ошибку. Пока я пытался; Изменение типа данных моего массива, Изменение имени моего массива, Изменение моей IDE (с ошибки Apache NetBeans на Eclipse.Same, за исключением того, что написано ';' ожидается вместо ']')

Поиск выполнен но не смог придумать решение. Вот пример кода:

РЕДАКТИРОВАТЬ: проблема решена, спасибо.

public class Datas{

    double[][] matrix= new double[2][2];
   matrix[0][0]=1;
   matrix[0][1]=1;
   matrix[0][2]=1;
   matrix[1][0]=1;
   matrix[1][1]=1;
   matrix[1][2]=1;
   matrix[2][0]=1;
   matrix[2][1]=1;
   matrix[2][2]=1;
     }

Ответы [ 4 ]

1 голос
/ 06 марта 2020

Каждая строка, кроме double[][] matrix= new double[2][2];, должна находиться в методе.

Если это POJO, поместите их в конструктор.

public class Datas{

  double[][] matrix= new double[2][2];

  public Datas() {
    matrix[0][0]=1;
    matrix[0][1]=1;
    matrix[0][2]=1;
    matrix[1][0]=1;
    matrix[1][1]=1;
    matrix[1][2]=1;
    matrix[2][0]=1;
    matrix[2][1]=1;
    matrix[2][2]=1;
  }
}

В противном случае вам понадобится main. Хотя - есть лучшие / более простые способы инициализации каждого значения в двумерном массиве 1:

Arrays.fill(matrix, 1);
1 голос
/ 06 марта 2020

Вы можете установить эти значения в конструкторе класса

public class Datas {

    double[][] matrix = new double[2][2];

    public Datas() {
        matrix[0][0] = 1;
        matrix[0][1] = 1;
        matrix[0][2] = 1;
        matrix[1][0] = 1;
        matrix[1][1] = 1;
        matrix[1][2] = 1;
        matrix[2][0] = 1;
        matrix[2][1] = 1;
        matrix[2][2] = 1;
    }

}
1 голос
/ 06 марта 2020

Инициализация должна быть в функции. Возможно, для вашего случая использования вы можете сделать это в Конструкторе.

public class Datas {

    double[][] matrix = new double[2][2];

    Datas() {
        matrix[0][0] = 1;
        matrix[0][1] = 1;
        matrix[0][2] = 1;
        matrix[1][0] = 1;
        matrix[1][1] = 1;
        matrix[1][2] = 1;
        matrix[2][0] = 1;
        matrix[2][1] = 1;
        matrix[2][2] = 1;
    }
}
0 голосов
/ 07 марта 2020

В качестве альтернативы созданию конструктора вы также можете использовать блок инициализатора экземпляра рядом с объявлением массива:

public class Datas {

    double[][] matrix = new double[2][2];
    {
        matrix[0][0] = 1;
        matrix[0][1] = 1;
        matrix[0][2] = 1;
        matrix[1][0] = 1;
        matrix[1][1] = 1;
        matrix[1][2] = 1;
        matrix[2][0] = 1;
        matrix[2][1] = 1;
        matrix[2][2] = 1;
    }
}
...