检测scala宏中的case类
在被称为scala(2.11)宏的方法中,是否有一种方法可以通过编程确定检测scala宏中的case类,scala,reflection,scala-macros,case-class,scala-2.11,Scala,Reflection,Scala Macros,Case Class,Scala 2.11,在被称为scala(2.11)宏的方法中,是否有一种方法可以通过编程确定类型是否是案例类 我正在使用的方法的API归结为: def-typeIsCaseClass(c:Context)(targetType:c.universe.Type):布尔={ //targetType“是案例类吗?” } 如果需要,我愿意修改API。符号通常包含所有有趣的信息: def typeIsCaseClass(c: Context)(targetType: c.universe.Type): Boolean =
类型
是否是案例类
我正在使用的方法的API归结为:
def-typeIsCaseClass(c:Context)(targetType:c.universe.Type):布尔={
//targetType“是案例类吗?”
}
如果需要,我愿意修改API。符号通常包含所有有趣的信息:
def typeIsCaseClass(c: Context)(targetType: c.universe.Type): Boolean = {
val sym = targetType.typeSymbol
sym.isClass && sym.asClass.isCaseClass
}