変数を型として使用するにはどうすればよいですか? 例えば:
scala> class A
defined class A
scala> class B extends A
defined class B
scala> def convert[F, T](from: F): T = from.asInstanceOf[T]
convert: [F, T](from: F)T
scala> val b = new B
b: B = B@54038f36
scala> convert[B, A](b)
res18: A = B@54038f36
これはうまくいきます。しかし、私はすることに興味があります:
scala> val aType = classOf[A]
aType: Class[A] = class A
scala> convert[B, aType](b)
<console>:12: error: not found: type aType
convert[B, aType](b)
オブジェクトを初期化してそこで使用せずにこれを行うにはどうすればよいobj.type
ですか? いくつかのリフレクション機能を使用する必要があると思いますが (おそらくTypeTag
?)、ここで使用する正しいものを見つけることができませんでした。
ありがとう!