我有一個MongoDB集合,其中的文檔包含多個數組。我「米檢索這些文件和它們的數據存儲到的POJO無法將BasicDBList轉換爲數組(java)
在某些情況下,我可以這樣做:
BasicDBList kws = (BasicDBList)obj.get(Constants.KEYWORDS_STR);
if(!kws.isEmpty())
tb.setKeywords(kws.toArray(new String[0]));
不過,我已經一個數組多數民衆贊成絆倒我,我還以爲它包含了多頭,但是。 toArray(new Long [0])拋出java.lang.ArrayStoreException。我想好了,由於某些原因,它們被存儲爲字符串,並嘗試轉換爲一個字符串數組,並且仍然得到java.lang.ArrayStoreException。
如何判斷BasicDBList認爲它存儲在哪個類中?
根據我的數據模型,它應該是Longs。看起來,JSON序列化程序在將Longs插入到MongoDB之前將它們轉換爲整數,因此它們被讀出爲整數。 – betseyb
如果可以的話,驅動程序會嘗試將其值填入32位,如果必要的話將其提升到64位。同樣,它會反序列化,如果可以的話,試圖將它裝入53位。如果不能,它將返回一個Long的實例以避免失去精度。 – Keith