可能重复:
如何查看Java的字节码?
我想知道在类型擦除之后是否可以在类文件中看到java编译器完成的代码更改.
我尝试过javap,但它使用参数化类型重建原始源文件.
教程(http://docs.oracle.com/javase/tutorial/java/generics/genTypes.html)讨论了在类型擦除后用有界类型或对象替换参数化类型.我想看看编译器做了哪些更改,这些更改在javap或任何反编译器中都不可见.
问候,sathwik
类型擦除字面意思是从生成的字节代码中删除泛型类型。值得注意的是它的缺席。因此,您可以看到它不存在于字节码中。
当您使用 时javap,您将看到一些通用类型信息可用于类、方法和字段签名。包含它是为了让编译器可以使用这些类来编译代码。尽管它们可以通过反射获得,但它们在运行时不执行任何操作,因此您可以编写使用此信息的库。