给定目标类型(比如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]
兼容?