Woher wissen, ob ein Objekt eine Instanz des Typs eines TypeTags ist?

Ich habe eine Funktion, die wissen kann, ob ein Objekt eine Instanz von a istManifestTyp. Ich würde es gerne nach a migrierenTypeTag Ausführung. Die alte Funktion ist die folgende:

def myIsInstanceOf[T: Manifest](that: Any) = 
  implicitly[Manifest[T]].erasure.isInstance(that)

Ich habe mit den TypeTags experimentiert und jetzt habe ich diese TypeTag-Version:

// Involved definitions
def myInstanceToTpe[T: TypeTag](x: T) = typeOf[T]
def myIsInstanceOf[T: TypeTag, U: TypeTag](tag: TypeTag[T], that: U) = 
  myInstanceToTpe(that) stat_<:< tag.tpe

// Some invocation examples
class A
class B extends A
class C

myIsInstanceOf(typeTag[A], new A)        /* true */
myIsInstanceOf(typeTag[A], new B)        /* true */
myIsInstanceOf(typeTag[A], new C)        /* false */

Gibt es einen besseren Weg, um diese Aufgabe zu erfüllen? Kann das parametrierenU weggelassen werden, mit einemAny stattdessen (so wie es in der alten Funktion gemacht wird)?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage