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

5

有没有一种方法可以在Java中运行时添加(或扩展现有)类。我遇到了一个问题,需要在运行时扩展现有的类并将其添加到类路径中,以便新类被使用。

谢谢。

3个回答

12

有几种方法可以实现这个目标。

  • 使用 javax.tools 包在运行时编译源代码,然后使用 ClassLoader 加载它们。
  • 如果你正在编写接口,可以使用 Proxy 修饰类。
  • 采用更为复杂的字节码操作/生成方法,使用像 BCELASM(后者对注释等语言特性有更完整的支持)技术,然后使用 ClassLoader 加载类。

我想还有其他选项。


4

您可能需要查看BCEL。如果没有更多关于您需要做什么的信息,那么给出更具体的答案就比较棘手了。


0

你应该明确写出为什么需要这个功能。 如果你尝试在运行时添加或替换逻辑,你可能需要查看脚本 API和一些实际的实现


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接