从BsonDouble列表转换为double [] java

时间:2018-10-13 15:25:40

标签: java mongodb java-8 bson

我需要将BsonDouble的ArrayList转换为double []。下面的代码引发异常:

  

'java.lang.ClassCastException:java.lang.Double无法转换为org.bson.BsonDouble'

 List<BsonDouble> bsonDoubles =
       (List<BsonDouble>) doc.get(entry.getKey());

 double[] d = 
    bsonDoubles.stream().mapToDouble(BsonDouble::doubleValue).toArray();

其中doc是BSON文档对象,而entry.getKey()返回一个获取文档字段的字符串。 从例外看来,我似乎在施行错误的方向,但对我来说似乎是正确的。帮助表示赞赏。

我正在使用:

  • 编译组:“ org.mongodb”,名称:“ mongodb-driver”,版本:“ 3.8.0”
  • 编译组:“ org.mongodb”,名称:“ mongodb-driver-reactivestreams”,版本:“ 1.9.2”
  • java-jdk1.8

1 个答案:

答案 0 :(得分:0)

关于返回的数据类型的错误假设。下面的代码可以正常执行:

List<Double> bsonDoubles = (List<Double>) doc.get(entry.getKey());
double[] d = bsonDoubles.stream().mapToDouble(Double::doubleValue).toArray();