Ответ 1
существует метод isNull()
, просто используйте, если заранее, чтобы обнаружить нулевые значения. Помните: довольно часто для методов, которые возвращают логическое имя isX()
вместо getX()
, оно может быть источником некоторой путаницы:)
Я хочу получить целое число из Cursor, возвращаемого из SQLite-запроса, но я знаю, что целое число может быть нулевым. К сожалению, я не могу найти какой-либо метод курсора, позволяющий проверить это.
Код будет
mModifiedDate = cursor.getInt(cursor.getColumnIndex(MODIFIED_DATE));
Я ожидал бы возможного нулевого значения, и это действительно желательно по разным причинам - поле ссылается на время, когда вторая таблица была изменена, и первая таблица может быть заполнена до второй. К сожалению, документация для Cursor говорит, что если выбрано исключение, или возвращается значение ошибки, или другое поведение, остается до реализации, а документация SQLiteCursor не говорит "НИЧЕГО".
Что будет делать этот код, если поле равно null? Есть ли способ проверить это до вызова getInt()?
существует метод isNull()
, просто используйте, если заранее, чтобы обнаружить нулевые значения. Помните: довольно часто для методов, которые возвращают логическое имя isX()
вместо getX()
, оно может быть источником некоторой путаницы:)
По моему опыту, он возвращает 0. Если 0 не является возможным ответом, тогда вы можете просто проверить значение 0. Если это возможный ответ, вам нужно сделать то, что предложили pgsandstrom.