1

我在 Scala 中很新。我需要得到一个类的参数化。我怎样才能做到这一点 ?类看起来像这样:

   class OutPort[T](name: Symbol, owner: Component) extends Port[T](name)

我在 LinkedList 中有很多 OutPort。在另一个类中,我想获取 OutPort 实例的参数化,但参数化是任意的,并且无法使用 isInstanceOf 的解决方案。有没有为此目的的特殊方法,我还没有介绍过?

月神

4

2 回答 2

5

保留该类型的清单,并使用它。如果你告诉我们你为什么要拿回来,我们也许也能更好地回答这个问题。

于 2011-06-19T21:34:03.077 回答
2

如前所述,您可以使用 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,什么时候需要它?

Scala 的 (2.8) Manifest 是如何工作的?

如何绕过 Scala 上的类型擦除?或者,为什么我不能获取我的集合的类型参数?

于 2011-06-20T01:23:00.683 回答