【发布时间】:2016-06-28 11:13:21
【问题描述】:
有人能帮我理解为什么这不起作用吗? Scala 2.10 版
object ColorEnum {
sealed trait Color
case object Red extends Color
case object Blue extends Color
case object Green extends Color
}
创建一个接受 Color 作为 Key 和 String 作为 value 的 Map
val colorMap = mutable.HashMap[ColorEnum.Color, String]()
使用 ColorEnum 作为 Key 在 Map 上放置一个项目
colorMap.put(ColorEnum.Red, "Foo")
这会引发异常
error: type mismatch
found: ColorEnum.Red.type
required: ColorEnum.Color
根据我对这应该如何工作的理解,我一定遗漏了一些东西。
谢谢
【问题讨论】:
-
我已经通过提供指向其他相关主题的链接以及如何使用案例类作为键的示例来更新我的答案。
-
这是为我编译的。你确定这是你使用的代码吗?
-
如果我在
object ColorEnum层次结构之外定义特征和案例对象。然后将映射定义为val colorMap = mutable.HashMap[Color, String](),它使用colorMap.put(Red, "Foo")工作。然后在 ColorEnum 中创建密封特征 Color 和 case 对象不起作用(至少对我而言)。 -
原来的代码在shell里面不行,但是在worksheet里面可以。很郁闷
标签: scala