反思确定Scala泛型的兼容性

时间:2017-07-09 09:16:51

标签: scala scala-reflect scala-generics

给定目标类型(比如List[String])和某个对象o,目标是找到一个o的方法,其返回类型与目标类型兼容。

在没有泛型的情况下,可以通过使用<:<运算符(Java的isAssignableFrom的scala反射类比)比较目标类型和方法的返回类型来检查这一点。来自scala.reflect.runtime.universe

此方法在泛型存在的情况下不起作用:例如,方法def getEmptyList[T]: List[T] = Nil的返回类型不满足List[T] <:< List[String]。如何确定返回类型 getEmptyList[T]确实与List[String]兼容?

0 个答案:

没有答案