【发布时间】:2012-07-11 20:00:42
【问题描述】:
请看下面的代码。此行被 Eclipse 标记为不正确:
var map = Map[MyEnum,Point]()
我正在尝试做相当于 Java 的 scala:
private enum Letters{ A,B,C}
private Map<Letters,Integer> thing= new HashMap<Letters,Integer> ();
这是写入它的文件/上下文。
class Point(var x:Int = 0, var y:Int = 0, var hasBeenSet:Boolean = false){
}
object MyEnum extends Enumeration{
MyEnum = Value
val UL,U,UR,L,R,DL,D,DR = Value
}
object MyEnumHolder {
var map = Map[MyEnum,Point]()
MyEnum.values.foreach(x => (map + (x -> new Point()) )
}
我正在尝试初始化映射的一个实例,其中枚举的每个值都映射到一个空点(这就是 for each 循环中发生的事情)。
编辑:必须编辑,因为我在编辑粘贴的代码时搞砸了一些事情,但现在应该有效
【问题讨论】:
-
我想你是想写
type MyEnum = Value -
你是对的,我在编辑中修复了它;)谢谢!
-
顺便说一句:
Enumeration被打破了,超出了希望。不要使用它,除非你讨厌自己和你的开发者伙伴。 -
顺便说一句:如果你想在 Java 映射中使用
enums 作为键,你应该使用EnumMap。
标签: scala