Шаблоны в Java

Missi4ka

Могут ли шаблоны Java иметь параметры примитивного типа или только ссылки?
Как генерится код по шаблону: так же, как и в C++ (то есть на этапе компиляции) или как в C# (то есть с докомпиляцией перед запуском или на лету или как-то иначе?

psihodog

Как генерится код по шаблону: так же, как и в C++ (то есть на этапе компиляции) или как в C# (то есть с докомпиляцией перед запуском или на лету или как-то иначе?
На этапе компиляции только проверка типов осуществляется, и генерится один код на весь генерик. Параметр имеет тип верхней границы.

Missi4ka

То есть, насколько я понял, это практически то же, что и generics в C#.
А есть ли какие-то отличия от C#-овских дженериков?

bastii

Читай пост выше.
 
На этапе компиляции только проверка типов осуществляется, и генерится один код на весь генерик. Параметр имеет тип верхней границы.
  

т.е. примитивные типы не могут быть аргументами для параметров дженерика, и рантайме тебе тип аргумента парметра дженерика не доступен.
Интересно, в реализации JVM в SE 5.0, есть оптимизация, которая устраняется касты типов возвращаемых значений, которые являются параметрами дженерика. Хотя, наверно, без расширения байт-кода это сделать нельзя.
Оставить комментарий
Имя или ник:
Комментарий: