Android: проблема во время объявления Arraylist - PullRequest
0 голосов
/ 09 ноября 2011

Если я объявлю Arraylist следующим образом -

private ArrayList<Integer[]> nodeList;

затем, добавляя в него массив, получаю исключение NullPointerException

Но, если я изменю это на

private ArrayList<Integer[]> nodeList= new ArrayList<Integer[]>();

- отлично работает.

Почему первый отказывает!

1 Ответ

3 голосов
/ 09 ноября 2011

Первый только объявляет переменную, но не создает фактический объект.только когда вы используете new, вы фактически создаете объект.

В Java, в отличие от C ++, объявление переменной не выделяет локальную переменную .Чтобы фактически создать объект, вам нужно явно создать его [в вашем примере: с помощью ключевого слова new].
(*) Обратите внимание, что это верно только для ссылок типов объектов, и java примитивы создаются с объявлением.

...