MongoDB getList("字段名称", Double::class.java); 在 Kotlin 中产生 ClassCastException

jor*_*gut 5 java mongodb kotlin

我正在尝试从 MongoDB 检索包含数组的字段Double,但我收到了

ClassCastException: List element cannot be cast to double.
Run Code Online (Sandbox Code Playgroud)

该类是用 Kotlin 编写的,产生异常的代码部分是:

val coordinates = doc.getList(FIELD_COORDINATES, Double::class.java)
Run Code Online (Sandbox Code Playgroud)

这有效:

val coordinates = doc.get(FIELD_COORDINATES) as List<Double>
Run Code Online (Sandbox Code Playgroud)

Java 中的等效代码也可以工作:

final List<Double> coordinates = doc.getList(FIELD_COORDINATES, Double.class);
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

如果这是 Kotlin 中的错误或者我的代码中有错误,请告诉我。

Ale*_*nov 4

Double::class.java在 Java 中相当于is double.class, not Double.class。这可以用java.lang.Double::class.javaKotlin 或Double::class.javaObjectType.