是否有人知道任何允许我在运行时定义新Java类并实例化该类实例的Java库?
答案 0 :(得分:1)
我不确定这是否是您正在寻找的内容,但请考虑Javassist或cglib库。
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来处理方法调用。