Может кто-нибудь объяснить, что означает эта ошибка, пожалуйста? - PullRequest
0 голосов
/ 07 марта 2011
java.lang.NullPointerException
    at java.lang.Integer.compareTo(Unknown Source)
    at java.lang.Integer.compareTo(Unknown Source)

Я немного отредактировал свой код, не удалил никаких методов, но изменил имя одного или двух, и теперь ... бум!Ничего не работает!Так раздражает, потому что я просто работал, вернулся и прокомментировал это, и теперь я не вижу, что изменилось ... помогите?:)

Ответы [ 4 ]

4 голосов
/ 07 марта 2011

Вы, вероятно, пытаетесь сделать что-то вроде этого:

Integer i = null;
Integer j = 42;
i.compareTo(j); // throws NullPointerException since i is null

или это:

Integer i = 21;
Integer j = null;
i.compareTo(j); // throws NullPointerException since j is null

но вы не показали ни одного кода.

1 голос
/ 07 марта 2011

Из документов :

Брошенный, когда приложение пытается использовать нуль в случае, когда требуется объект.К ним относятся:

  • Вызов метода экземпляра нулевого объекта.
  • Доступ к полю нулевого объекта или его изменение.
  • Взятие длины нуля, как если быэто был массив.
  • Доступ к нулевым слотам или их изменение, как если бы это был массив.
  • Бросок нулевого значения, как если бы это было значение Throwable.

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

Вы наверняка столкнулись с одним из этих случаев.На более высоком уровне вы могли бы вызвать функцию (здесь compareTo ()) с нулевым аргументом, который затем приводит к исключению NullPointerException в функции.

Возможно, у вас есть TreeMap и вставлен нульв карту?

0 голосов
/ 07 марта 2011

Поставьте точку останова в этой строке и посмотрите, что var равно null. Оттуда это будет легко исправить.

0 голосов
/ 07 марта 2011

Вы уверены, что когда вы меняли имя вашего метода, вы меняли его везде, где вы вызывали его? Скорее всего, за исключением пустого указателя, у вас неправильно набранное или записанное имя. Похоже, вы пытались сравнить два целых числа, и есть вероятность, что метод, который выдает одно из этих целых чисел, больше не вызывается правильно. Всегда проверяйте дважды.

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