I\'ve thought java erasure wipes generic types out in compile time however when i test it by myself i realized there are some information about generic types in Bytecode.
Type info will be erased from here
integerList = new ArrayList();
in the bytecode it will be equivalent to
and there is no chance to know in runtime from integerList object what was its compile time type.