在Java中在运行时扩展或添加新类

有没有办法在运行时在java中添加(或扩展现有的)类。 我遇到了一个问题,我必须在运行时扩展现有的类并将其添加到类路径中,以便获取这个新类。

谢谢,

有很多方法可以做到这一点。

  • 使用javax.tools包在运行时编译源代码,然后使用ClassLoader加载它们。
  • 如果要编写接口,可以使用Proxy来装饰类。
  • 采用更复杂的字节码操作/生成路线,使用BCEL或ASM等技术(后者对语言function提供更多最新支持,如注释),然后使用ClassLoader加载类。

我想还有其他选择。

你可能想看看BCEL 。 如果没有关于您需要做什么的更多信息,提供更具体的答案是很棘手的。

你应该写下你需要这个function的原因。 如果您尝试在运行时添加或替换逻辑,则可能需要查看脚本API和一些实际实现 。