Estoy intentando utilizar un parámetro de tipo covariante dentro de un rasgo de construir un caso de clase de este modo:¿Por qué el parámetro está en una posición contravariante?
trait MyTrait[+T] {
private case class MyClass(c: T)
}
compilador dice:
error: covariant type T occurs in contravariant position in type T of value c
Luego probé el siguiente pero también dejase 't trabajo:
trait MyTrait[+T] {
private case class MyClass[U <: T](c: U)
}
el error en esta ocasión es:
error: covariant type T occurs in contravariant position in type >: Nothing <: T of type U
¿Podría alguien explicar por qué la T está en una posición covariante aquí y sugerir una solución para este problema? ¡Thx!
¿Podría explicar qué es lo que realmente quiere hacer? ¿Por qué quieres T covariante y no invariante? –