NullPointerException на int? - PullRequest
       11

NullPointerException на int?

0 голосов
/ 19 мая 2011

есть кто-нибудь, кто может мне помочь с этим ...

Мой код: http://pastebin.com/eD2WknXA

Сбои в строке 178 с NPE

В конструкторекласса, в котором находится массив, я даже поместил блок кода, который устанавливает все целые числа в 0, но даже это не помогло?

кто-нибудь?

Ответы [ 4 ]

7 голосов
/ 19 мая 2011

Скорее всего, у вас будет

  • An Integer[] с элементом Integer, равным null (автоматическое удаление)
  • An int[], что* null.

EDIT :

Из вашего вставленного кода это может быть только сам массив cur, который null,root не может быть null, потому что тогда NPE будет на предыдущей строке

2 голосов
/ 19 мая 2011

Вот строка 178:

if (i == root.n-1 || val < cur.values[i] || cur.values[i] == 0) {

Так что либо root равен null, root.n равен null, либо cur равен null. Поместите несколько операторов отладки, чтобы проверить значение этих ссылок или просмотреть их в отладчике.

2 голосов
/ 19 мая 2011

Вы уверены, что в какой-то момент он не использует Integer, а автоматически распаковывает в int?Например:

public class Test {
  public static void main(String[] args) throws Exception {
    Integer[] x = { null };

    // Automatic unboxing for each element
    for (int i : x) {
      System.out.println(i);
    }
  }
}
1 голос
/ 19 мая 2011

Может ли быть так, что ваш массив int (а не какой-либо элемент внутри) имеет значение null?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...