如何增加Java的反射性来打印方法主体?
恐怕很难。
首先,原始源代码很可能对正在运行的程序不可用。通常,开发人员不要在二进制JAR中包含源代码。(即使这样做,也不能保证它们将成为“真实”来源。)
通常,您可以通过将类的FQN转换为字节码文件并使用类classloader将文件作为资源流加载来获取类的字节码。但是不能保证以此方式获得的字节码将与加载的字节码相同。(出于各种原因,一些类加载器会弄乱字节码。)
假设你 可以
得到真正的字节码,最后一步将是要么显示他们生的,或分解或反他们更具可读性。您应该能够进行
javap反汇编,但是反编译将需要使用第三方产品。当然,反编译后的代码看起来将与原始代码明显不同,并且如果字节码被混淆了,它们的源代码将几乎无法读取。



