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

5 java runtime class extend

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

谢谢,

McD*_*ell 11

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

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

我想还有其他选择.


Jon*_*eet 4

您可能想看看BCEL。如果没有关于您需要做什么的更多信息,就很难给出更具体的答案。