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

时间:2009-06-18 08:23:55

标签: java class runtime extend

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

感谢,

3 个答案:

答案 0 :(得分:11)

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

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

我想还有其他选择。

答案 1 :(得分:4)

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

答案 2 :(得分:0)

您一定要写下您需要此功能的原因。 如果您尝试在运行时添加或替换逻辑,您可能需要查看scripting API和一些实际的implementations