通常,我使用java从mongo数据库中提取数据(因为我必须跨许多数据库进行非常大量的收集)。在这个过程中,我一般用
例如:
time = ((myObject.containsField("time"))) ? (myObject.get("time").toString().isEmpty()) ? "Empty" : myObject.get("time").toString() : "NA";
确保该字符串存在或为空。但是我们该如何做空检查,我的意思是如果时间的值为空
例如:
time=null
我们如何将值提取到脚本中,以便我可以将其另存为表示空值的某些字符串?
.get
导致NullPointerException
。这是运行时检查,我经常为每个记录提取20个以上的值。做空检查的最佳方法是什么?非常感谢您的帮助。提前致谢!! :)
最佳答案
如果.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
指针。