ターゲットの型 (たとえばList[String]
) とオブジェクト o が与えられた場合、目標は、ターゲットの型と互換性のある戻り値の型を持つ o のメソッドを見つけることです。
ジェネリックがない場合は、 from<:<
演算子 (Java の のスカラ リフレクション アナログ)を使用してメソッドのターゲット型と戻り値の型を比較することで、これを確認できます。isAssignableFrom
scala.reflect.runtime.universe
このアプローチは、ジェネリックが存在する場合には機能しません。たとえば、メソッドの戻り値の型が をdef getEmptyList[T]: List[T] = Nil
満たしていませんList[T] <:< List[String]
。getEmptyList[T]
の戻り値の型が実際に と互換性があることをどのように判断
しList[String]
ますか?