Java: расширение класса во время выполнения

У меня есть возможность расширить класс во время компиляции, но мне нужно иметь возможность создать экземпляр этого подкласса во время выполнения, используя экземпляр суперкласса, который уже был создан.

Это должно быть возможно в теории, потому что конструкторы суперкласса уже вызываются до конструктора подкласса.

У меня недостаточно доступа к программе, чтобы ни изменить конкретизацию на мой подкласс, ни прервать исходную реализацию.

Вариант использования: существует массив экземпляров класса X. Мой код загружается после. Мне нужно переопределить один из методов одного из экземпляров X с моим загруженным подклассом Y, расширяющим X. Родительская программа получает доступ к объектам только через этот массив, поэтому я хочу заменить этот элемент массива своим экземпляром Y, но для этого нужно вести себя так, как если бы он был изначально создан в этом массиве. Я не могу просто заключить экземпляр суперкласса и переадресовывать вызовы, и возникают сложности с повторным созданием суперкласса.

Я надеюсь, что это более ясно.

11
задан JAKJ 6 April 2012 в 17:22
поделиться