Я искал на форуме и в Google ответы на вопросы о стирании типов для Scala. Однако я не могу найти ничего, что отвечает на мой вопрос.
Я борюсь с сопоставлением шаблонов для объектов, которые соответствуют параметру типа ParamClass. Мне нужно сопоставить шаблон типа входящих объектов с методом панели. Я видел такие решения, как
bar[X](a : X)(implicit m : Manifest[X])
что решило бы мою проблему, но я не могу использовать это, поскольку метод bar является переопределенным методом. (На самом деле это частичная функция приема в структуре актера Akka ). Код приведен ниже и не требует пояснений:
class ParamClass[A : Manifest] {
def bar(x : Any) = x match {
case a: A => println("Found A: " + a)
case _ => println("No match: " + x)
}
}
object ErasureIssue {
def main(args: Array[String]) {
val clz = new ParamClass[Int]
clz.bar("faf")
clz.bar(2.3)
clz.bar(12) // this should match, but does not
}
}
ErasureIssue.main(null)
Любая помощь в решении этой проблемы приветствуется. Я использую Scala 2.9.1, кстати.
-Дж