【发布时间】:2013-06-04 15:55:54
【问题描述】:
如何将TypeRef 扩展为别名的原始类型(和类型参数)的类型别名?
如果我有一个引用 Option[List[Double]] 的类型并且我这样做了:
case myType @ TypeRef(_, sym, args) if myType <:< typeOf[Option[Any]] ⇒
我明白了:
-
sym是Option -
args.head是List[Double],我可以继续处理Double类型。
带类型别名
如果我有一个类型 Option[MyType] 并键入别名 type Mytype = List[Double] 并且我这样做:
case myType @ TypeRef(_, sym, args) if myType <:< typeOf[Option[Any]] ⇒
我明白了:
-
sym是Option -
args.head是MyType
如何通过反射将MyType 扩展为List[Double]?我已经能够确定MyType 是List,但是我无法获得嵌套类型参数Double。
Scaladoc 参考文献
TypeRef(
pre: Universe.Type,
sym: Universe.Symbol,
args: List[Universe.Type])
【问题讨论】:
标签: scala reflection types macros