我想知道你是否可以在Scala中写下类似的内容:
abstract class Foo
trait Bar {
type Foo_Tpe <: Foo : Manifest[Foo_Tpe]
def fooClass = classOf[Foo_Tpe]
}
答案 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
}