在运行时创建任意Java类

时间:2011-06-24 20:52:25

标签: java reflection

是否有人知道任何允许我在运行时定义新Java类并实例化该类实例的Java库?

4 个答案:

答案 0 :(得分:1)

我不确定这是否是您正在寻找的内容,但请考虑Javassistcglib库。

  

Javassist(Java Programming Assistant)使Java字节码操作变得简单。它是一个用Java编辑字节码的类库;它使Java程序能够在运行时定义新类,并在JVM加载时修改类文件。 [...]

     

cglib是一个功能强大,性能高,质量高的代码生成库,用于扩展JAVA类并在运行时实现接口。 [...]

答案 1 :(得分:1)

ASM是一个通用的Java字节码操作和分析框架。它可以用于修改现有类或直接以二进制形式动态生成类。

答案 2 :(得分:0)

如果您不想在字节码级别工作,可能的解决方案是使用Java SE 6的Compiler API。有关示例,请参阅here

答案 3 :(得分:0)

Java的Proxy类可用于创建在运行时实现特定接口的动态类。这些类使用InvocationHandler来处理方法调用。