通常,我使用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指针。

07-24 17:45
查看更多