使用MongoDB和Java存储阵列

使用MongoDB和Java存储阵列,java,arrays,mongodb,Java,Arrays,Mongodb,我正在mongoDb集合中保存一个BasicDBObject BasicDBObject[] aBox = new BasicDBObject[5]; BasicDBObject obj = new BasicDBObject(); obj.append("box", aBox); 目前这是一个空数组,所以我的集合中只有[] BasicDBObject[] aBox = new BasicDBObject[5]; BasicDBObject obj = new BasicDBObject();

我正在mongoDb集合中保存一个BasicDBObject

BasicDBObject[] aBox = new BasicDBObject[5];
BasicDBObject obj = new BasicDBObject();
obj.append("box", aBox);
目前这是一个空数组,所以我的集合中只有[]

BasicDBObject[] aBox = new BasicDBObject[5];
BasicDBObject obj = new BasicDBObject();
obj.append("box", aBox);
但是当我尝试获取数组时

DBObject[] aBox = (DBObject[]) obj.get("box");
我有这个错误

java.lang.ClassCastException: com.mongodb.BasicDBList cannot be cast to [Lcom.mongodb.DBObject;

你知道如何使用我的数组吗?

basicdblist
是一个
列表
,因此有一个
toArray
方法。或者你可以把它列成一张清单。像这样的方法应该会奏效:

List<BasicDBObject> list = (List<BasicDBObject>) obj.get("box");
BasicDBObject[] aBox = list.toArray(new BasicDBObject[list.size()]);
List List=(List)对象获取(“box”);
BasicDBObject[]aBox=list.toArray(新的BasicDBObject[list.size()]);

感谢您的帮助,我还可以直接保存我在保存之前不需要转换为数组的列表