我在 Scala 中很新。我需要得到一个类的参数化。我怎样才能做到这一点 ?类看起来像这样:
class OutPort[T](name: Symbol, owner: Component) extends Port[T](name)
我在 LinkedList 中有很多 OutPort。在另一个类中,我想获取 OutPort 实例的参数化,但参数化是任意的,并且无法使用 isInstanceOf 的解决方案。有没有为此目的的特殊方法,我还没有介绍过?
月神
我在 Scala 中很新。我需要得到一个类的参数化。我怎样才能做到这一点 ?类看起来像这样:
class OutPort[T](name: Symbol, owner: Component) extends Port[T](name)
我在 LinkedList 中有很多 OutPort。在另一个类中,我想获取 OutPort 实例的参数化,但参数化是任意的,并且无法使用 isInstanceOf 的解决方案。有没有为此目的的特殊方法,我还没有介绍过?
月神
保留该类型的清单,并使用它。如果你告诉我们你为什么要拿回来,我们也许也能更好地回答这个问题。
如前所述,您可以使用 ClassManifest 或清单。这是一个使用示例:
class Foo[T](t: T)(implicit m: ClassManifest[T]) {
def foo = m toString
}
scala> (new Foo(5)) foo
` res1: java.lang.String = Int
scala> (new Foo("hi")) foo
res2: java.lang.String = java.lang.String
scala> (new Foo(new scala.swing.Frame)) foo
res3: java.lang.String = scala.swing.Frame
以下是一些与 Scala 清单相关的 SO 主题:
什么是 Scala 中的 Manifest,什么时候需要它?