我正在製作一個應用程序,在Solr和Scala中提出請求。 其實,我得到了10個案例類,我在我的請求後實例化。 爲了製作一個通用的應用程序,我嘗試使用參數類型。Scala:參數匹配類型
我的問題:我必須在我的參數類型上進行切換,並且obv不工作(由於擦除)。
見我reflexions &僞代碼:
getItem[Apple](10)
=>
def getItem[T](id : Option[Int]) = {
... // Here I request Solr then i want to create my caseClass from Solr docs.
mapsolr[T].toUseCase(docs) // send solr docs to map
}
這裏我映射:
class mapSolr(docs){
def toUseCase[T] = {
// Here i want to be able to make a switch on T
typeOf[T] match {
case x if x =:= typeOf[CaseClass1] =>
blabla // (return List[CaseClass1]
case x if x =:= typeOf[CaseClass2] =>
blabla // (return List[CaseClass2]
}
}
我得到了錯誤 「沒有可以T TypeTag」 。我知道它是因爲擦除,但我不知道該怎麼做。
我只是想能夠測試我的參數類型...
謝謝。
我有你要找的feling對於這樣的事情:http://docs.scala-lang.org/overviews/reflection/typetags-manifests.html – Pavel
是的,我知道我需要使用TypeTag。 Probem:我不知道如何使用和實施它... – GreGGus