как создать карту с параметром типа класса - PullRequest
0 голосов
/ 11 мая 2009

Я пытаюсь сделать что-то вроде этого:

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)

}

Это не похоже на работу. Какой тип параметра я должен использовать для класса?

1 Ответ

3 голосов
/ 12 мая 2009

Я не совсем уверен, в чем заключается основная проблема, но это не параметр типа для класса. Кажется, это какая-то странная проблема вывода типа с "->". Следующее компилируется и работает просто отлично.

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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...