Comments 2
implicit ev: ClassTag[T] :)
+3
Это связано с сильными контрактами совместимости между Java-версиями: модули скомпилированные до Java 5, продолжат работать — вызывать классы с generic-типами. Это работает и назад. В случае более строгой реализации generic-типов без erasure совместимость была бы нарушена.
На самом деле не совсем так. Когда для Java проектировалось решение для добавления дженериков было создано сразу оба экспериментальных варианта - как с боксингом так и со специализацией. Но по результатам тестов, на JVM того времени, вариант со специализацией выглядел неубедительно и привносит дополнительные проблемы. Потому предпочтение было отдано варианту реализации через боксинг.
0
Sign up to leave a comment.
Получение generic-типа в runtime