@ agnasg

Y aquí les presento, una vez más, a Java

05-04-2016 5:26 AM

Si tú tienes que escribir lo siguiente para explicar cualquier cosa del funcionamiento de un lenguaje simplemente ese lenguaje dejó de ser una lenguaje: un sistema que sirve para comunicarse.

“Con el ejemplo de List, es necesario recordar que los genéricos no son ni covariante ni contravariante. Esto significa que si X es un subtipo de Y, List <X>  ni un subtipo ni un supertipo de Lista <Y>. Dado que Integer no implementa CharSequence, no se puede utilizar la List<Integer> en su método doCharSequence .”

(“With the List example, you need to remember that generics are neither covariant nor contravariant. This means that if X is a subtype of Y, List<X> is neither a subtype nor a supertype of List<Y>. Since Integer does not implement CharSequence, you cannot use List<Integer> in your doCharSequence method.”)

El punto no es que requieres aclarar varios detalles para que esto se entienda cabalmente, sino que bien el programador o alguno de los programadores que le hagan mantenimiento al código que se genera basado en esta explicación va a cometer un error en un 99.7% de los casos.

Tomado de esta respuesta en StackOverflow, con comentarios de reddit, donde se indica como algo impresionante, sin aclarar si es bueno o malo.