gpt4 book ai didi

scala - 将 Map[String, Double] 转换为 java.util.Map[String, java.lang.Double]

转载 作者:行者123 更新时间:2023-12-01 07:52:56 27 4
gpt4 key购买 nike

我认为我们可以依靠隐式转换来转换 scala.Doublejava.lang.Double .所以我尝试了以下方法:

import scala.collection.JavaConverters._

object Main extends App {
def main(args: Array[String]) = {
val m = Map("10" -> 20.0)
doSome(m.asJava) //error. Type mismatch found: java.util.Map[String,scala.Double]
// required: java.util.Map[String,java.lang.Double]
doSome2(m.asJava)
}
def doSome(m: java.util.Map[java.lang.String, java.lang.Double]) = println(m)
def doSome2(m: java.util.Map[java.lang.String, Double]) = println(m)
}

为什么不起作用?执行这种转换的惯用方法是什么?

最佳答案

您需要double的盒装版:

import scala.collection.JavaConverters._

m.mapValues(Double.box).asJava

隐式能够转换值 Doublejava.lang.Double ,但不是 Map[String,Double]java.util.Map[String,java.lang.Double] .
String不需要转换,因为 Stringjava.lang.StringDoubledouble (原始)。

关于scala - 将 Map[String, Double] 转换为 java.util.Map[String, java.lang.Double],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40682785/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com