Моя программа падает из-за исключения нулевого указателя.
Отрывок трассировки стека:
java.lang.NullPointerException
at com.my.GRTRecTimeSortComparator.compare(SourceFile:15)
Это хорошо и хорошо.Но моя проблема в том, что строка 15 является объявлением класса:
15 public class GRTRecTimeSortComparator implements Comparator<GRTRecord> {
16 @Override
17 public int compare(GRTRecord rec1, GRTRecord rec2) {
18
19 int returnVal=rec1.getRecordCalendar().compareTo(rec2.getRecordCalendar());
20 return returnVal;
21 }
22}
Она вызывает функцию сравнения, но я также не вижу проблемы с этим.Каждой записи также присвоен уникальный календарь.
Есть идеи?Что я здесь не так сделал?
Редактировать: в ответ на запросы:
Нет, в самом классе нет ничего странного, кроме того факта, что я его написал.
Я использую Proguard.Может быть, Обфускация заменяет вещи неправильно?
Я сейчас пишу тесты для записей.Они НЕ ДОЛЖНЫ быть null
, равно как и Calendars
;Я использую их непосредственно раньше и получаю хорошие результаты.
Может быть, я просто неправильно передаю ArrayList
.
РЕДАКТИРОВАТЬ 2:
Регистрация строк, вставленных в классникогда не беги.Независимо от того, что я добавляю или делаю с классом, нулевой указатель всегда разрешается в строке объявления класса.
Удалено запутывание Proguard, и все еще нет игральных костей.
Я ДЕЙСТВИТЕЛЬНО расстроен.
Редактировать 3:
Для будущих пользователей:
Proguard разрушает вашу трассировку стека.Это было причиной вышесказанного.Удалите proguard, если вы столкнулись с проблемами.
Причина была на самом деле поврежденной записи в наборе данных.