Múltiples límites de tipo inferior en Scala
Me di cuenta quetuple.productIterator
siempre devuelve unIterator[Any]
se preguntó si no es posible establecer múltiples límites inferiores (por lo que podría ser un iterador del supertipo común más bajo).
Intenté y busqué un poco, pero solo encontréest pregunta para múltiples límites superiores.
Esta es mi prueba sobre cómo definir el tipo de iterador:
def f[A,B](a:A, b:B) = List(a,b)
// return type is List[Any]
def f[A,B, T >: A "and" T >: B](a:A, b:B) = List[T](a,b)
// doesn't compile, but
// f(1, true) should give a List[AnyVal] and
// f("x", "y") a List[String]
Es esto una limitación de la JVM?
Editar Aquí hay un ejemplo un poco más grande que no parece resolverse usando el enfoque de IttayD cuando T debe definirse en el método:class Foo[A, B](a: A, b: B) {
def f[T >: A] = List[T](a) // works
def g[T >: A "and" T >: B] = List[T](a) // doesn't work
}