eri*_*oco 5 java types mongodb deserialization
我在MongoDB文档中有一个存储任意大数字的字段.当我将其作为DBObject(MongoDB的Java驱动程序)检索时,我有时会遇到ClassCastException:
DBObject obj = collection.findOne();
long val = (Long)(o.get("numericVal"));
Run Code Online (Sandbox Code Playgroud)
如果存储的值numericVal是1234567890,则转换为Long成功.如果是12345,则DBObject.get()返回Double,并且转换失败.
在反序列化MongoDB DBObject时如何确保类型安全?
我认为你可以通过使用类型安全的getLong(String键)而不是强制转换(Long)来避免ClassCastException,并希望autoboxing做正确的事情让你很长时间.
http://api.mongodb.org/java/2.8.0/org/bson/BasicBSONObject.html#getLong(java.lang.String)
DBObject obj = collection.findOne();
long val = o.getLong("numericVal");
Run Code Online (Sandbox Code Playgroud)
我也怀疑12345成为双倍.还有其他事情发生在这里.