2015-05-27 2 views
0

Часто я извлекаю данные из базы данных mongo с помощью java (потому что я должен делать это через очень большое количество коллекций во многих базах данных). В процессе, я обычно используюОбработка нулевых значений при извлечении с помощью java из MongoDB

Например:

time = ((myObject.containsField("time"))) ? (myObject.get("time").toString().isEmpty()) ? "Empty" : myObject.get("time").toString() : "NA"; 

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

Например: time=null

Как мы извлечь значение для сценария, так что я могу сохранить его в выписке некоторые строки, которая представляет нулевое значение?

.get приводит к NullPointerException. Это проверка времени выполнения, и я часто извлекаю более 20 значений для каждой записи. Каков наилучший способ сделать нулевую проверку?

Ваша помощь очень ценится. Заранее спасибо!! :)

+0

Вы хотите, чтобы результирующее время было строкой «null» или «null» –

+0

Я хочу, чтобы это была строка racta «null». так что я могу сохранить его как значение времени для записи –

+0

Хорошо, тогда ниже ответ должен сработать для вас. –

ответ

0

Если .get() бросает нулевое исключение указателя можно просто добавить еще один случай трехкомпонентный вокруг него, для .get() бросить NPE myObject должно быть null. Таким образом, это должно работать

time = myObject != null ? ((myObject.containsField("time")))? 
     (myObject.get("time").toString().isEmpty())?"Empty":myObject.get("time").toString():"NA" : "null"; 

Для учета вышеуказанных замечаний, .get не кажется, что метание NPE, .toString() должно быть. Измените код таким образом:

time = myObject.containsField("time") ? myObject.get("time") != null ? 
     (myObject.get("time").toString().isEmpty())?"Empty":myObject.get("time").toString():"NA" : "null"; 

Дополнительный тройная блок, теперь будет проверять, если в результате "time" ключевых результатов в null указатель.

+0

Не работает myObject - это объект DBObject. сравнение myObject кажется нелогичным, поскольку myObject будет иметь более одного столбца для извлечения. Я попытался извлечь его так, как вы предлагали, но он все еще не работает –

Смежные вопросы