Обновить

Комментарии 2

implicit ev: ClassTag[T] :)

Это связано с сильными контрактами совместимости между Java-версиями: модули скомпилированные до Java 5, продолжат работать — вызывать классы с generic-типами. Это работает и назад. В случае более строгой реализации generic-типов без erasure совместимость была бы нарушена.

На самом деле не совсем так. Когда для Java проектировалось решение для добавления дженериков было создано сразу оба экспериментальных варианта - как с боксингом так и со специализацией. Но по результатам тестов, на JVM того времени, вариант со специализацией выглядел неубедительно и привносит дополнительные проблемы. Потому предпочтение было отдано варианту реализации через боксинг.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации