尝试使用guava库创建TypeError: encoder expected a mapping type but got: ...
我遇到以下问题:
这有效:
MinMaxPriorityQueue
但这不是:
val q: MinMaxPriorityQueue[String] = MinMaxPriorityQueue.
maximumSize(10).
create()
q.add("1.0")
就我在搜索[1]时发现的情况而言,这可能是因为Java将scala的val q: MinMaxPriorityQueue[Double] = MinMaxPriorityQueue.
maximumSize(10).
create()
q.add(1.0)
视为Java中的Double
,并且它不支持double
。所以我试过这个:
Comparable
这样可行,但是当我尝试添加另一个元素时:
val q: MinMaxPriorityQueue[Comparable[Double]] = MinMaxPriorityQueue.
maximumSize(10).
create()
q.add(1.0)
失败了:
a.add(2.3)
这似乎与[1]中提到的问题有关。
我还尝试编写类型视图:
java.lang.ClassCastException: scala.runtime.RichDouble cannot be cast to java.lang.Double
出现同样的错误。
有解决方法吗?
答案 0 :(得分:1)
或许使用java.lang.Double
?
val q: MinMaxPriorityQueue[java.lang.Double] = ...
应该工作。