Tôi có một trường trong tài liệu MongoDB lưu trữ một số lượng lớn tùy ý. Khi tôi lấy nó như là một (trình điều khiển Java cho MongoDB) DBObject, đôi khi tôi chạy vào một ClassCastException:MongoDB/Java: Gõ an toàn trong DBObjects
DBObject obj = collection.findOne();
long val = (Long)(o.get("numericVal"));
Nếu giá trị được lưu trữ trong numericVal
là, nói, 1234567890, dàn diễn viên Long thành công. Nếu nó là, giả sử, 12345, DBObject.get() trả về một đôi, và diễn viên thất bại.
Làm cách nào để đảm bảo an toàn loại khi deserializing MongoDB DBObjects?
bạn có tích cực là giá trị '12345' không? Có cách nào đó với mongo để xem xét giá trị thô - liệu nó có biểu diễn JSON không? –
tôi đã nhập nó qua vỏ là 12345, nhưng khi tôi in nó trong vỏ nó xuất hiện là 12345.0. rõ ràng đó là một vấn đề về phía trình phân tích cú pháp (trình điều khiển java), nhưng tôi không biết nó đã xảy ra như thế nào trên phía Mongo ngay từ đầu. mà nói, tôi muốn biết làm thế nào để duy trì an toàn loại nói chung với trình điều khiển java. – ericsoco