我是Scala的新手。 我需要得到一个类的参数化。 我怎样才能做到这一点 ?这个类看起来像这样:
class OutPort[T](name: Symbol, owner: Component) extends Port[T](name)
我在LinkedList中有很多OutPorts。在另一个类中,我想获得OutPort实例的参数化,但参数化是任意的,并且isInstanceOf的解决方案不具备。是否有一种特殊的方法用于此目的,我还没有涵盖呢?
Lunatikz
答案 0 :(得分:5)
保持类型的清单,并使用它。如果你告诉我们你为什么要这样做,我们也可以更好地回答这个问题。
答案 1 :(得分: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主题:
What is a Manifest in Scala and when do you need it?
How does Scala's (2.8) Manifest work?
How do I get around type erasure on Scala? Or, why can't I get the type parameter of my collections?