在 Java 中在运行时扩展或添加新类
Posted
技术标签:
【中文标题】在 Java 中在运行时扩展或添加新类【英文标题】:Extending or adding new classes at runtime in Java 【发布时间】:2010-11-03 22:19:27 【问题描述】:有没有办法在运行时在 java 中添加(或扩展现有)类。我遇到了一个问题,我必须在运行时扩展现有类并将其添加到类路径中,以便拾取这个新类。
谢谢,
【问题讨论】:
【参考方案1】:有很多方法可以做到这一点。
在运行时使用javax.tools 包编译源代码,然后使用ClassLoader 加载它们。 如果要写入接口,可以使用Proxy 装饰类。 使用像BCEL 或ASM(后者对语言特性,如注解等提供更多最新支持)等技术采取更复杂的字节码操作/生成路线,然后使用 ClassLoader 加载类.我想还有其他选择。
【讨论】:
【参考方案2】:您可能想查看BCEL。如果没有更多关于您需要做什么的信息,很难给出更具体的答案。
【讨论】:
【参考方案3】:您绝对应该写下为什么需要此功能。 如果您尝试在运行时添加或替换逻辑,您可能需要查看scripting API 和一些实际的implementations。
【讨论】:
以上是关于在 Java 中在运行时扩展或添加新类的主要内容,如果未能解决你的问题,请参考以下文章