на что в байткоде у дженериков заменяется конструкция

Насколько я понял, дженерики после компиляции заменяются в скомпилированном коде на конструкции без дженериков.

Так, например параметризованный метод


      public <T> T f(){
       T t = null;
       return t;
      }  

Превращается в


      public Object f(){
       Object  t = null;
       return t;
      } 

,код


      public <T extends MyClass> T f(){
       T t = null;
       return t;
      }  

превращается в


      public MyClass f(){
       MyClass t = null;
       return t;
      }  

А во что превратиться


      public <T super MyClass> T f(){
       T t = null;
       return t;
      }  

?


Ответы (1 шт):

Автор решения: pazukdev

<T super MyClass> превратится в ошибку компилятора. В отличие от wildcard дженерик не может быть lower bounded.

→ Ссылка