Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
检测scala宏中的case类_Scala_Reflection_Scala Macros_Case Class_Scala 2.11 - Fatal编程技术网

检测scala宏中的case类

检测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 =

在被称为scala(2.11)宏的方法中,是否有一种方法可以通过编程确定
类型
是否是
案例类

我正在使用的方法的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
}