我有能力在编译时扩展一个类,但是我需要能够在运行时使用已经实例化的超类的实例来创建这个子类的实例。
这在理论上应该是可能的,因为在子类构造函数之前已经调用了超类构造函数。
我没有足够的权限访问程序来将实例化更改为我的子类,也无法中断原始实例化。
用例:有一个现有的 X 类实例数组。我的代码是在之后加载的。我需要用我加载的子类 Y 扩展 X 覆盖实例 X 之一的方法之一。父程序仅通过该数组访问对象,因此我想用我的 Y 实例替换该数组元素,但它需要表现得好像它最初被实例化到该数组中一样。我不能只包含超类实例并转发调用,并且重新实例化超类存在困难的复杂性。
我希望这更清楚。