What do you mean with "run type erasure separately"? Do you mean, if there's some option to the compiler to just remove the generics and see what the source code looks like after type erasure? There is no such compiler switch, but it's easy to do yourself: just remove all the generics from your source code. So List<
String> becomes just plain List, etc.