2012-04-07 2 views
1

У меня есть глобальный массив. Когда я хочу что-то сохранить в каком-то методе, и после этого показать его из этого массива, он имеет ошибку NullPointerException. Массив - тип объекта. Код такой какAndroid Не удается сохранить массив

class Something { 
    public CoordinatesObject[] coordinates; 

    Something() { 
     coordinates = new CoordinatesObject[4]; 
    } 

    public String myMethod() { 
     if (coordinates.length==0){ 
     coordinates[0] = new CoordinatesObject(0,0); 
     } 
    } 
    return Integer.toString(coordinates[0].getX()); 
} 

Что случилось?

Извините, я обновил код. Я создал новый массив в конструкторе

ответ

0

Вам нужно на самом деле выделить пространство для массива, прямо сейчас у вас есть ссылка на ничего.

Также обратите внимание, что массивы фиксированной длины, вы можете захотеть использовать коллекцию (например, список) вместо этого, в зависимости от ваших потребностей.

+0

Я обновил код I inicialize массив в конструкторе –

+0

@ user1106177 И? –

0

Вам также необходимо создать массив с новым.

0

В настоящее время у вас есть ссылка NULL. Как указывает предыдущий плакат, вам нужно определить и создать некоторое пространство для вашего массива.

+0

Я обновил код, который я инициализирую массив в конструкторе ... –

+0

Упрощение ответа Рафаля Росзака, поскольку это понятно и объясняет вашу проблему. – Shion

1

Вы создали массив с этой линии:

coordinates = new CoordinatesObject[4]; 

, а затем вы пытаетесь создать CoordinatesObject так:

if (coordinates.length==0){ 
    coordinates[0] = new CoordinatesObject(0,0); 
} 

но coordinates.length будет равна 4, которые означает, что объект класса CoordinatesObject не будет создан.

Смежные вопросы