Обход NullPointerException при установке фиксированного массива на новый размер - PullRequest
0 голосов
/ 25 мая 2018

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

public static void create (String[][] x, int y) {
    x = new String[y][y];
}

Появляется ошибка «Исключение нулевого указателя»", и я знаю, что могу решить эту проблему, просто избавившись от аргумента и просто используя переменную 2d-массива, которую я хочу изменить в методе, но я просто хотел узнать, есть ли способ обойти ошибку.

1 Ответ

0 голосов
/ 25 мая 2018

Как я уже сказал в комментариях, то, что вы пытаетесь сделать, невозможно.Если вам все еще нужен фабричный метод, измените метод:

public static void create (String[][] x, int y) {
    x = new String[y][y];
}

на следующий:

public static String[][] create (int y) {
    return new String[y][y];
}

, который создаст двумерный квадратичный массив с длиной y.Это может быть использовано, как показано в следующем фрагменте:

String[][] myArray = create(32);

, который будет действовать равным:

String[][] myArray = new String[32][32];

И, на мой взгляд, последний намного яснее.Добавление метода для создания такого маленького массива, вероятно, слишком сложное.Даже если вам нужно создать как 200 экземпляров массива.Будет намного понятнее, если вы используете встроенный синтаксис создания массива (new String[][]).

...