Intereting Posts
Закусочная и другие анимации перестали работать на некоторых устройствах Android Android: быстрое размытие растрового изображения? Когда лучше не использовать Phonegap? Нужно ли мне действительно передавать экземпляры контекста глубоко в приложение? Список всех лидеров в сервисах игровых игр Google Разработка Android и Unity 3D Библиотека материалов – предотвращение отклонения / закрытия диалога on onPositive function call Узнайте, будет ли текущая деятельность в конечном итоге выполняться в конечном итоге, после того как незавершенные отделочные операции исчезнут Как обновить платформенные платформы Android в безголовом Linux? Как изменить фоновый цвет информационной области на ImageCardView? Наблюдаемый / Наблюдатель Android Запросы Rxjava и Volley AlphabetIndexer с пользовательским адаптером Как изменить цвет текста кнопки диалога по умолчанию в android 5 Инициализация глобальных переменных до нуля на Android NDK

Long.getLong () failing, возвращающий значение null в действительную строку

Я провел последние два часа, отлаживая то, что кажется крайне маловероятным. Я отключил метод вторичной активности Android для этого:

public void onClick(View v) { String str = "25"; long my_long = Long.getLong(str); } // onClick (v) 

И да, я получаю сбой с хорошим ol 'NullPointerException:

09-11 02: 02: 50.444: ОШИБКА / AndroidRuntime (1588): обработчик нечистоты: выход из основного потока из-за неперехваченного исключения 09-11 02: 02: 50.464: ERROR / AndroidRuntime (1588): java.lang.NullPointerException

Похоже, что (из других тестов), что Long.getLong (str) возвращает NULL, что приводит меня в беду. ЧТО Я НЕ ПРОПУСТИТЬ?

Заранее спасибо. Я в порядке с глупостью пропуская очевидное, но мое здравомыслие находится на линии.

Solutions Collecting From Web of "Long.getLong () failing, возвращающий значение null в действительную строку"

Вам не хватает того факта, что Long.getLong(String str) не должен синтаксически обрабатывать String до длинного, а скорее для возврата длинного значения системного свойства, представленного этой строкой. Как и другие, вам понадобится Long.parseLong(String str) .

Вы можете использовать Long.parseLong(String) вместо getLong(String) : это решит проблему.

Я думаю, что вы используете неправильную функцию Long.parseLong (str), тогда вы можете получить правильный ответ.

Long.parseLong (someString) одобрено. Не забудьте поймать NumberFormatException, если есть вероятность неповторимой строки.

Чтобы понять это, некоторые примеры:

 Long val= Long.getLong("32340"); 

Возвращает: null

 Long val = Long.getLong("32340", 3000); 

Возвращается: 3000

Использование Long.parseLong () :

 Long val = Long.parseLong("32340"); 

Возвращается: 32340

Документация описывает метод getLong () как:

Возвращает длинное значение свойства системы, идентифицируемое строкой.

Это код метода getLong () и получает только значение свойства, определенное строкой:

  public static Long getLong(String string) { if (string == null || string.length() == 0) { return null; } String prop = System.getProperty(string); if (prop == null) { return null; } try { return decode(prop); } catch (NumberFormatException ex) { return null; } } 

Если вы хотите разобрать String to Long, лучший способ – использовать метод Long.parseLong () .