我有一个ClassSymbol
并且想要生成一个零参数方法 throwing ???
。这是我的尝试:
假设这object Test
是我们拥有ClassSymbol
的类型。
我。
val sym = //the ClassSymbol
val tpe = tq"$sym.type"
q"def foo(): $tpe = ???"
结果:
[error] stable identifier required, but Test.type found.
二、
val sym = //the ClassSymbol
val tpe = tq"${sym.name}.type"
q"def foo(): $tpe = ???"
结果:
[error] found : c.universe.TypeName
[error] required: c.universe.TermName
[error] val tpe = tq"${sym.name}.type"
三、
val sym = //the ClassSymbol
val tpe = tq"${TermName(sym.name.toString)}.type"
q"def foo(): $tpe = ???"
结果:
Compiles successfully
所以我最终使用了看起来很吓人的方法三。
是否有“本机”方式ClassSymbol
在准引用中使用?