3
あなたはScalaで、次のようなものを書くことができれば、私は疑問に思う:パラメータ化された型のような抽象型のマニフェストはありますか?
abstract class Foo
trait Bar {
type Foo_Tpe <: Foo : Manifest[Foo_Tpe]
def fooClass = classOf[Foo_Tpe]
}
あなたはScalaで、次のようなものを書くことができれば、私は疑問に思う:パラメータ化された型のような抽象型のマニフェストはありますか?
abstract class Foo
trait Bar {
type Foo_Tpe <: Foo : Manifest[Foo_Tpe]
def fooClass = classOf[Foo_Tpe]
}
ありませんが、あなたはそれを提供するためにサブクラスを頼むことができます。
trait Bar {
type Foo_Tpe <: Foo
protected def fooManifest: Manifest[Foo_Tpe]
def fooClass = fooManifest.erasure
}
はいなし。あなたはこれを行うことができます:
val man = manifest[Foo_Tpe]
どの時点でそれがマニフェストを持っていないと言いますか。
私はScalaコンパイラによって提供され、サブタイプでは定義されていないことを望みます。 –
コンパイラが 'Bar'から提供することはできません。 –