【发布时间】:2016-05-21 10:30:06
【问题描述】:
trait F[S]{
def evaluate(): S
}
从 typeOf[F[Double]] 中如何发现“evaluate”的返回类型是 Double?
typeOf[F[Double]]
.decls
.filter(_.name.toString=="evaluate")
.head
.asMethod
.returnType
.dealias
==> S
评估返回双精度的类型信息并没有被删除——它似乎很难查找并与类型参数匹配:
typeOf[F[Double]].typeArgs
==> 列表(双)
可能我的类可能有很多类型参数,所以我不能确定S是第一个类型参数,但是类型参数的类型似乎是已知的。
【问题讨论】:
标签: scala