我正在尝试在MACRO上下文中的符号上获取成员的参数化类型。我只有一个符号可用(不能使用weakTypeOf [List [Blah]]),因为我正在迭代一堆类。
val meWantArg = classSymbol.member("paramList": TermName).typeSignature
返回......
=> List[IWantThis]
如何获取IWantThis Type对象???
我试过了:
meWantArg.typeSymbol.asType.typeParams //returns List(type A)
我尝试过提取:
TypeRef(_,_,args) = meWantArg //returns ()
请记住,我使用的是2.10.2宏插件。
答案 0 :(得分:3)
我猜测=> IWantThis
paramList
不是val
,而是没有括号的arity-0方法:
def paramList: List[IWantThis] = ???
如果是,则成员是方法类型,您必须在从中提取参数之前获取方法的返回类型:
val meWantArg = classSymbol.member("paramList": TermName).asMethod.returnType
val TypeRef(_,_,args) = meWantArg