2

如何解决给定的别名Type?IE

import reflect.runtime.universe._

type Alias[A] = Option[Option[A]]
val tpe = typeOf[Alias[_]] 
val ExistentialType(quantified, underlying) = tpe

我如何Option[Option[_$1]]underlying(或从tpe)获得?我知道typeSymbol确实可以解决别名,但它似乎在此过程中丢失了参数:

scala> val tT = typeOf[Alias[_]].typeSymbol
tT: reflect.runtime.universe.Symbol = class Option

scala> tT.asType.toType
res3: reflect.runtime.universe.Type = Option[A]

scala> tT.asType.typeParams
res4: List[reflect.runtime.universe.Symbol] = List(type A)
4

1 回答 1

6

该方法在 2.10 中被调用normalize(在 2.11 中已弃用并dealias添加)。不知道我是如何在第一次搜索时错过它的。

于 2015-03-28T17:04:47.190 回答