java - 如何以及如何动态创建未知类的子类?

标签 java inheritance dynamic-programming

这是我的场景。我有一个插件系统。插件可以在运行时通过插件主列表相互检测和查找。 层次结构是这样的

Base Class A
----Unknown Class B extends A
--------Known method from Class A, we'll call it E
--------Dynamically generated Class F extends B
------------Overridden Method E
------------Other methods inherited from A and B

F 应继承 B 的行为,但 E 被覆盖除外。然后,F 与 B 分开实例化为具有相似但不相同行为的不同对象。类 B 在编译时是未知的,但可以通过迭代来识别它并检查插件主列表中的 A 实例。

我的具体案例涉及一个游戏。不一定是我正在做的事情,但一个很好的例子是找到其他插件添加的每把剑,然后制作剑的新副本,具有所有相同的能力,除了它会发射火焰而不是它可能的任何奇特的 Swing 效果本来就有,方法E决定了挥剑时会发生什么。

最佳答案

您可以使用字节码工程工具包,例如 javassist 。它可以让你 create new classes based on your existing class让您change the method body .

关于java - 如何以及如何动态创建未知类的子类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32839837/

相关文章:

java - log4j:如何为父类(super class)中的方法在子类中启用日志记录

c++ - 不同类中实现的纯虚函数的继承

python - 使用动态规划的分词

java - 重复矩形而不是移动动画

java - JOptionPane 将我的代码变成一个实际的游戏

Java,比较 if 语句中的分钟 - 没有得到期望的结果

algorithm - 如何使用曼哈顿距离来解决这个游戏?

java - Spring Security 加密字符串 - Go 中解密失败

angular - 扩展 Angular Material2 MdTab 组件

c - 多个序列的最长公共(public)子序列