В Java дженерики работают так, как они это делают ... по крайней мере частично ... потому что они были добавлены к языку через несколько лет после того, как язык был разработан . Дизайнеры языка были с ограничениями в своих вариантах для дженериков, имея придумать дизайн, который был обратно совместим с существующим языком и библиотекой классов Java.
Другие языки программирования (например, C++, C#, Ada) позволяют использовать примитивные типы в качестве типов параметров для дженериков. Но обратная сторона этого заключается в том, что реализации таких языков для генериков (или типов шаблонов) обычно влекут за собой генерирование отдельной копии типичного типа для каждой параметризации типа.
1 - Причина дженерики не были включены в Java 1.0 было из-за нехватки времени. Они почувствовали, что им нужно быстро выпустить Java-язык, чтобы заполнить новую рыночную возможность, представленную веб-браузерами. Джеймс Гослинг заявил, что он хотел бы включить дженерики, если бы у них было время. Как бы выглядел язык Java, если бы это произошло, это догадка.
int i = (int) new Object(); компилирует только штраф, хотя. –