PDA

View Full Version : [Java] Come ricavare tutti i riferimenti ad una istanza


Lim
13-01-2012, 09:47
Potrebbe essermi molto utile ricavare in modo preciso tutti i riferimenti ad una istanza specifica. Come potrei fare in Java?

Banalmente, se avessi una situazione del genere:


Oggetto a=new Oggetto();
Oggetto b=a;
Oggetto c=a;


E' evidente che l'oggetto in questione è puntato da 3 variabili, come posso, partendo da una qualsiasi di esse, ricavare anche le altre due?

Esistono magari delle istruzioni specifiche di Java o dei tool esterni? Ho provato con il profiler VisualVM, ma non sono riuscito a ricavare questa informazione, forse sbaglio io ad usarlo? Praticamente riesco a vedere quante istanze ho di "Oggetto" (in questo caso 1), ma non vedo che è referenziato da 3 variabili, anche se c'è la voce References, che riporta <no references>

Lim
13-01-2012, 10:20
Analizzando meglio VisualVM forse riesco a ricavare quest'informazione.
Non è agevole come me l'aspettavo, ma è già qualcosa.

Resto comunque aperto a nuove proposte ;)

gokan
13-01-2012, 13:49
Ciao, non ho capito se devi fare la ricerca di un riferimento ad un oggetto leggendoti un file sorgente oppure il tuo scopo è trovare un IDE che ti aiuti a leggere facilmente una classe java.

Nel secondo caso con Netbeans ad esempio, sottolineando un riferimento, ti mostra delle righine marroni a sx per identificare tutti i riferimenti ad una variabile.

Ciao

Lim
13-01-2012, 14:29
Beh come IDE uso Eclipse, mi ci trovo abbastanza bene.

Il discorso che facevo è di individuare in qualsiasi modo tutti i possibili riferimenti ad un oggetto specifico. Ho provato a farlo a runtime monitorando con un profiler, bene o male fa il suo lavoro, ma non comprende tutte le casistiche (ovviamente dipende dallo stato in cui si trova il sw in quel momento).

Non so se sia possibile ricavare questa informazione partendo dal file sorgente (cioè, se lo faccio io a mano sicuramente ci riesco, ma è un lavoro lunghissimo e non è comunque a prova di errore :P)