Exploring JVM extensions to add proper reified generics to Java! You'll be able to distinguish List<Integer> from List<String> (i.e. not just type erasure). https://openjdk.java.net/jeps/8204937