如果经常写工具类,很大概率会遇到一个比较实际的问题,就是需要在泛型表达式A中获取T的运行时类型。获取它需要一些技巧。但这个技巧很少被透彻的解释过为什么会生效。在接下来的文章里,我们会从Java的泛型(Generics)谈起,结合JLS(Java语言标准,Java Language Specification)和JVMS(Java虚拟机标准,Java Virtual Machine Specification),通过javac编译过程对泛型处理的源码,结合JRE反射API源码的探索,最后以一种虚拟机的实现(OpenJDK8的hotspot)来验证,来从根本上解答这个问题