[英]Scala: typeTag for an abstract type?
I want to do something like the following: 我想做以下事情:
trait Sim {
type Probe
var probe: Probe
def reflectProbe() {
// works:
val tt_int = scala.reflect.runtime.universe.typeTag[Int]
// does not work (No TypeTag available for Sim.this.Probe):
val tt_probe = scala.reflect.runtime.universe.typeTag[Probe]
}
}
class WorldProbe
class World extends Sim {
type Probe = WorldProbe
var probe: Probe = new WorldProbe
}
I want to write a reflection method in trait sim that reflects the probe class of trait sim, defined as an abstract type Probe. 我想在trait sim中编写一个反映方法,以反映trait sim的探针类,定义为抽象类型Probe。 How can I make typetag information for the abstract type available?
如何使抽象类型的Typetag信息可用?
Thanks! 谢谢!
对于抽象类型,可以使用WeakTypeTags
:
val tt_probe = scala.reflect.runtime.universe.weakTypeTag[Probe]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.