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 все таки сохраняется в рантайме.

August 2025

S M T W T F S
     12
34 567 89
10111213141516
17181920212223
24252627282930
31      

Style Credit

Expand Cut Tags

No cut tags