我有一个带有参数 x 的Scala(2.10)def宏。它的身体看起来像这样:
if (x.actualType =:= typeOf[generic.Type[String]]) {
// branch 1: do something with x
}
else {
// branch 2: do something else
}
无法访问 generic.Type 类本身的实现,并且无法修改其实现。现在,我喜欢这个宏来调用分支1,不仅仅是为了 generic.Type [String] ,而是为了 generic.Type [T] ,其中< em> T 是任何类型。
有没有规范的方法来实现这一目标?或者是使用AST手动执行此操作的唯一选项吗?
答案 0 :(得分:2)
尝试x.actualType.typeSymbol == typeOf[generic.Type[_]].typeSymbol