MongoDB文書に任意に大きな数値を格納するフィールドがあります。私はDBObjectを(MongoDBのためのJavaドライバ)として、それを取得すると、私は時々にClassCastExceptionに実行します。numericVal
に格納された値は、たとえば、1234567890である場合MongoDB/Java:DBObjectsの型安全性
DBObject obj = collection.findOne();
long val = (Long)(o.get("numericVal"));
、ロングへのキャストは成功します。例えば12345の場合、DBObject.get()はDoubleを返し、キャストは失敗します。
MongoDB DBObjectsを逆シリアル化する際に、型の安全性を保証するにはどうすればよいですか?
あなたは値が '12345'正ですか? mongoに未加工価値を見るための方法がいくつかありますか?それにはJSON表現がありますか? –
シェルから12345として入力しましたが、シェルでプリントすると12345.0と表示されます。明らかにそれはパーサ(Javaドライバ)側の問題ですが、最初はmongo側でどうなったのか分かりません。それは、私はどのようにjavaドライバとタイプの安全性を維持する方法を知りたいと思います。 – ericsoco