私はScalaでSolrでリクエストするアプリケーションを作っています。 実際、私は要求後にインスタンス化する10のケースクラスを持っています。 一般的なアプリケーションを作成するには、パラメータ型を使用しようとします。Scala:パラメータの一致型
私の問題:私はParamter Typeにスイッチを入れなければなりません。それはobvが動作していない(消去のため)。
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]
}
}
Iましたエラー "Tのために利用可能なTypeTag":
私リフレクションズ&擬似コード:
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
}
私のマッピングを参照してください。 。私はその消去を知っているが、私はどのようにするか分からない。私はちょうど私のパラメータの型をテストすることができるようにしたい
...感謝。
私はあなたが探しているfelingを持っていますそのようなもの:http://docs.scala-lang.org/overviews/reflection/typetags-manifests.html – Pavel
私はTypeTagを使用する必要があることを知っています。 Probem:私はそれをどのように使用して実装するのか分かりません。 – GreGGus