En Java, los genéricos funcionan de la manera en que lo hacen ... al menos en parte ... porque se agregaron al lenguaje varios años después de que se diseñó el lenguaje . Los diseñadores de idiomas fueron constreñidos en sus opciones para genéricos al tener que idear un diseño que fuera retrocompatible con el idioma existente y la biblioteca de clases Java.
Otros lenguajes de programación (por ejemplo, C++, C#, Ada) permiten el uso de tipos primitivos como tipos de parámetros para genéricos. Pero la otra cara de esto es que las implementaciones de genéricos (o tipos de plantillas) de dichos lenguajes generalmente implican la generación de una copia distinta del tipo genérico para cada tipo de parametrización.
1 - La razón por la que los genéricos no se incluyeron en Java 1.0 se debía a que la presión del tiempo. Sentían que tenían que obtener el lenguaje Java lanzado rápidamente para llenar la nueva oportunidad de mercado presentada por los navegadores web. James Gosling ha declarado que le hubiera gustado incluir genéricos si hubieran tenido tiempo. No se sabe cómo se vería el lenguaje Java si esto hubiera sucedido.
int i = (int) new Object(); compila bien sin embargo. –