我正在尝试做这样的事情:
import scala.swing
class componentMapper {
val map = Map[Class[_], Componenet]()
def apply(c: Class[_], component: Component) = map += (c -> componenet)
}
class Render extends ComponentMapper {
def getRenderer(value: AnyRef) = map(value.getClass)
}
这似乎不起作用。我应该为Class使用什么类型的参数?
答案 0 :(得分:3)
我不完全确定核心问题是什么,但它不是类的类型参数。它似乎是“ - >”的一些奇怪的类型推断问题。以下编译并正常工作。
import scala.swing._
class ComponentMapper {
var map = Map[Class[_], Component]()
def apply(c: Class[_], component: Component) = map += ((c, component))
}
class Render extends ComponentMapper {
def getRenderer(value: AnyRef) = map(value.getClass)
}
请注意,我必须对您的代码进行许多小的更正,以便找到您正在讨论的问题。
我已经提交了一张票,以防它可以修复:https://lampsvn.epfl.ch/trac/scala/ticket/1974。