在Scala映射的初始化中键入不匹配错误(字符串到对象)

时间:2014-08-10 22:02:59

标签: scala types map

我需要设置一个从String映射到对象的Scala Map(字符串,整数,浮点数)

我试过这段代码:

val m = Map[String, Object]("A"->10, "B"->20.5)

获取类型不匹配错误。

enter image description here

这个问题的解决方案是什么?

1 个答案:

答案 0 :(得分:11)

严格来说,Scala Int不是Object的子类型,但它是AnyVal的子类型:

val m = Map[String, AnyVal]("A"->10, "B"->20.5)

其中AnyVal是所有Scala基元的常见超类型,我总是引用这个图像来说明类型层次结构:

http://lmazy.verrech.net/wp-content/uploads/2011/02/scala_type_hierarchy.png

如果您希望使用scala.Scala.Objectjava.lang.Object的常用超类型使用Any

Here是图片的链接。