перенести массив в двойной массив [0] в Java - PullRequest
0 голосов
/ 30 июля 2011

У меня есть этот код:

public class Test{
        arrayList<String> list = new ArrayList<String>();
        String[][] temp_list;

        public static void main(String[] args)
        {
          String temp = list.get(0);
          temp_list[0] = temp.split(" ");
        }
    }

Я хочу перенести первый элемент из списка в список temp_list [0]. Компиляция выполнена успешно, но я получаю ошибку при запуске. Это ошибка:

 Exception in thread "main" java.lang.NullPointerException
            at Test.main(Test.java:this line=>temp_list[0] = temp.split(" ");)

кто-нибудь может мне помочь?

Ответы [ 3 ]

0 голосов
/ 30 июля 2011

Это потому, что вы не выделили 2D-массив для temp_list. (В каком массиве должен храниться результат разбиения?)

Вот рабочая версия вашего фрагмента.

import java.util.ArrayList;

public class Test {
    static ArrayList<String> list = new ArrayList<String>();
    static String[][] temp_list;

    public static void main(String[] args) {
        list.add("hello wold");

        // allocate memory for 10 string-arrays.
        temp_list = new String[10][];     <-----------

        String temp = list.get(0);
        temp_list[0] = temp.split(" ");
    }
}
0 голосов
/ 30 июля 2011

Этот код не будет компилироваться, поскольку список объявлен как переменная-член класса, но main является статическим методом.

Как написано, список тоже ничего не добавил, поэтому вызов list.get (0) вызовет исключение (но не нулевой указатель).

Массив temp_list не выделен (не новый) в указанном коде, поэтому попытка присвоения ему вызовет исключение нулевого указателя.

0 голосов
/ 30 июля 2011

Вам необходимо инициализировать temp_list, прежде чем использовать его.Вам необходимо указать размер массива.Например:

int sizeOfArray = 5;
String[][] temp_list = new String[sizeOfArray][];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...