Ho la possibilità di estendere una classe in fase di compilazione, ma ho bisogno di essere in grado di creare un'istanza di questa sottoclasse in fase di esecuzione utilizzando un'istanza della superclasse già istanziata.Java: estensione della classe al runtime
Ciò dovrebbe essere teoricamente possibile perché i costruttori di superclasse sono già stati chiamati prima del costruttore della sottoclasse.
Non ho accesso al programma in modo sufficiente per modificare l'istanza della mia sottoclasse né per interrompere l'istanziazione originale.
Caso di utilizzo: esiste una matrice esistente di istanze di classe X. Il mio codice viene caricato in dopo. Ho bisogno di sovrascrivere uno dei metodi di una delle istanze X con la mia sottoclasse caricata Y estende X. Il programma principale accede agli oggetti solo attraverso quella matrice, quindi voglio sostituire quell'elemento dell'array con la mia istanza Y, ma ha bisogno di comportarsi come se fosse istanziato originariamente in quell'array. Non posso semplicemente racchiudere l'istanza della superclasse e inoltrare le chiamate, e ci sono complicazioni difficili con il reintegrare la superclasse.
Spero che sia più chiaro.
Si prega di riformulare la domanda. –
Puoi anche fornire un esempio di ciò che stai effettivamente cercando di realizzare? Invece di solo il tuo desiderato, ma possibilmente impossibile, metodo per farlo. – millimoose
Assume la linea esistente "public static Foo foo = new Foo();" che non posso alterare. Ho "public class Bar extends Foo" e voglio fare "foo = new Bar (...)" in modo tale che fosse come se la prima riga fosse "public static Foo foo = new Bar()". – JAKJ