на что в байткоде у дженериков заменяется конструкция
Насколько я понял, дженерики после компиляции заменяются в скомпилированном коде на конструкции без дженериков.
Так, например параметризованный метод
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.