eou*_*3hf 3 reflection scala case-class scala-macros scala-2.11
在一种称为scala(2.11)宏的方法中,是否有一种方法可以以编程方式确定a是否Type为a case class?
我正在研究的方法的API可以归结为:
def typeIsCaseClass(c: Context)(targetType: c.universe.Type): Boolean = {
// targetType "is case class?"
}
Run Code Online (Sandbox Code Playgroud)
如果需要,我愿意更改API。
这些符号通常包含所有有趣的信息:
def typeIsCaseClass(c: Context)(targetType: c.universe.Type): Boolean = {
val sym = targetType.typeSymbol
sym.isClass && sym.asClass.isCaseClass
}
Run Code Online (Sandbox Code Playgroud)