Исключение нулевого указателя при разборе SimpleDateFormate? - PullRequest
0 голосов
/ 01 апреля 2020

У меня есть этот метод, который должен принимать разницу между двумя разами, но я продолжаю получать исключение нулевого указателя в первой строке кода в блоке try.

Параметр time принимает время вызов функции в формате «ЧЧ: мм: сс», и время1 и время2 являются глобальными строковыми переменными с форматами «ЧЧ: мм: сс».

private String calculateTime(String time) {
        time2 = time;

        SimpleDateFormat timeFormat = new SimpleDateFormat("HH:mm:ss");

        Date date1;
        Date date2;
        try {
             date1 = timeFormat.parse(time1);
             date2 = timeFormat.parse(time2);
             long diff = date2.getTime() - date1.getTime();
             time1 = timeFormat.format(new Date(diff));
        } catch (ParseException e) {
            e.printStackTrace();
        }

        System.out.println("The diff is "+ time1);

        return time1;

    }
}

Я прошагал по коду и все Кажется, он настроен правильно, только когда он достигает значения date1 = timeFormate.parse(time1), кажется, что он не работает. Кто-нибудь знает, что я могу делать не так?

1 Ответ

1 голос
/ 01 апреля 2020

time1 инициализируется после того, как вы на него ссылаетесь. Это ясно из кода, который вы разместили. Время2 назначено времени, но время1 никогда не инициализируется перед ссылкой.

...