【发布时间】:2010-01-10 04:42:17
【问题描述】:
如果我在运行时有一个 Class 实例,我可以得到它的 byte[] 表示吗?我感兴趣的字节将在Class file format 中,这样它们就可以成为 [ClassLoader.defineClass][3] 的有效输入。
[3]: http://java.sun.com/j2se/1.5.0/docs/api/java/lang/ClassLoader.html#defineClass(java.lang.String, 字节[], int, int)
编辑:我接受了 getResourceAsStream 答案,因为它非常简单,并且大部分时间都可以使用。 ClassFileTransformer 似乎是一个更强大的解决方案,因为它不需要从 .class 文件加载类;例如,它将处理网络加载的类。使用这种方法需要跳过一些障碍,但我会牢记在心。谢谢大家!
【问题讨论】:
标签: java classloader