我有能力在编译时扩展类,但是我需要能够在运行时使用已实例化的超类的实例创建此子类的实例。Java:在运行时扩展类
这在理论上应该是可能的,因为超类构造函数已经在子类构造函数之前被调用过。
我没有充分地访问该程序来将实例更改为我的子类,也无法中断原始实例化。
使用案例:有一个现有的X类实例数组。我的代码在之后加载。我需要重写其中一个实例X的方法,其中我的加载子类Y扩展了X.父程序仅通过该数组访问对象,所以我想用Y实例替换该数组元素,但它需要表现得好像它最初实例化到该数组中一样。我不能随便附上超类实例和转发调用,并且在重新实例化超类时遇到困难。
我希望更清楚。
请重新说明问题。 – 2012-04-06 16:11:11
您是否还可以提供您实际尝试完成的示例?而不仅仅是你想要的,但可能不可能的方法。 – millimoose 2012-04-06 16:16:27
假设现有行“public static Foo foo = new Foo();”我无法改变。我有“public class Bar extends Foo”,我想做“foo = new Bar(...)”,就好像第一行是“public static Foo foo = new Bar()”。 – JAKJ 2012-04-06 16:24:48