Pattern matching on generic type in Scala
I would go with TypeTag if you’re on 2.10+ import reflect.runtime.universe._ class Observable[Foo] def X[T: TypeTag](ob: Observable[T]) = ob match { case x if typeOf[T] <:< typeOf[Double] => println(“Double obs”) case x if typeOf[T] <:< typeOf[Boolean] => println(“Boolean obs”) case x if typeOf[T] <:< typeOf[Int] => println(“Int obs”) } X(new Observable[Int]) // Int obs See … Read more