是否存在抽象类型的清单,例如参数化类型?

时间:2012-01-28 11:11:43

标签: scala manifest abstract-type

我想知道你是否可以在Scala中写下类似的内容:

abstract class Foo

trait Bar {

  type Foo_Tpe <: Foo : Manifest[Foo_Tpe]

  def fooClass = classOf[Foo_Tpe]

}

2 个答案:

答案 0 :(得分:1)

是和否。你可以这样做:

val man = manifest[Foo_Tpe]

此时它会告诉你它没有清单。

答案 1 :(得分:0)

不,但您可以要求子类提供它:

trait Bar {

  type Foo_Tpe <: Foo

  protected def fooManifest: Manifest[Foo_Tpe]

  def fooClass = fooManifest.erasure

}