Jun. 24th, 2016

В любом учебнике написано, что в рантайме тип, которым параметризован генерик, не сохраняется. Однако:
ArrayList s = new ArrayList(){};
Type t = s.getClass().getGenericSuperclass();
Type param =((ParameterizedType) t).getActualTypeArguments()[0];
System.out.println(param);
System.out.println(param==String.class);


Дает результат:
class java.lang.String
true

нашел в коде netty.

То есть, если у нас есть class Foo extends Bar<Baz>{}, то Baz все таки сохраняется в рантайме.

December 2025

S M T W T F S
 12 3456
78910111213
141516 17 181920
21222324252627
28293031   

Style Credit

Expand Cut Tags

No cut tags