有没有办法在运行时获取类的字节码?
在Java中,是否有一种方法(在运行时)获取定义特定类的字节码?
换句话说,有没有办法在加载特定类时获取传递给ClassLoader.defineClass(String name, byte[] b, int off, int len)
的byte[]
数组? 我看到这个方法被声明为final
,因此创建一个自定义ClassLoader
来拦截类定义似乎是不可能的。
在过去,我使用类的ClassLoader
通过getResourceAsStream(String)
方法获取字节码,但我更喜欢更规范的解决方案。
以下是如何实现代理的说明
“Java代理”将是显而易见的解决方案。