|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Junior Member
Iscritto dal: Feb 2004
Messaggi: 23
|
[Java] - referenze ad oggetti
Java non utilizza puntatori espliciti, tutti gli oggetti sono passati per referenza. Cosa deve fare uno quando ha bisogno solo della referenza e non dell'oggetto? E' da un po' che mi rompo la testa o nuoto nel classico bicchiere d'acqua... Spiego il problema.
-Ho una grande numero di oggetti in alcuni "Vector" statici. -Utilizzo combinazioni di oggetti tratti dai sopraddetti vettori. In quanto vorrei tenere traccia di tali combinazioni vorrei salvare il vettore dei sottoinsiemi su database o disco. Il processo di serializzazione standard salva l'intero oggetto (improponibile - gli oggetti sono numerosi e complessi). Come faccio a scorporare la referenza e salvare solo il "puntatore" all'oggetto per riutilizzarlo in un secondo momento? Riki |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Dec 2005
Messaggi: 7257
|
non ho capito benissimo qual'è il problema, comunque forse ti serve costruire una hash map.. ogni oggetto ha già associato un hash univoco raggiungibile con x.hashCode()
se puoi spiegare meglio quello che devi fare magari si riesce a trovare la soluzione più adatta |
![]() |
![]() |
![]() |
#3 | |
Senior Member
Iscritto dal: Dec 2001
Città: Milano
Messaggi: 545
|
Quote:
__________________
Angus the Hunter @ Realm of magic | Angus Young @ Batracer °SetiEmperor°| Ninja Technologies { qualunque cosa sia, è veloce e fa male (cit.) } |
|
![]() |
![]() |
![]() |
#4 | |
Senior Member
Iscritto dal: Dec 2001
Città: Milano
Messaggi: 545
|
Quote:
Codice:
String a1 = new String("ab"); String a2 = new String("bC"); System.out.println("" + (a1.hashCode() == a2.hashCode()));
__________________
Angus the Hunter @ Realm of magic | Angus Young @ Batracer °SetiEmperor°| Ninja Technologies { qualunque cosa sia, è veloce e fa male (cit.) } |
|
![]() |
![]() |
![]() |
#5 |
Junior Member
Iscritto dal: Feb 2004
Messaggi: 23
|
Un riferimento in Java non lo puoi "trattare" come un puntatore in C: non sono la stessa cosa. Comunque, se ho capito il problema, puoi pensare di utilizzare gli indici dei tuoi array statici come base di partenza per comporre un "indirizzo virtuale" dei tuoi oggetti: nel database potresti salvare, per esempio, {vettore:121, indice:872364}.
Il discorso sugli indici è un'ottimo uovo di Colombo, non ci avevo manco pensato, ossessionato come ero dall'idea di usare puntatori tipo C. Penso proprio che utilizzerò questo sistema, che è anche semplice da implementare, grazie! -- Comunque, al di là di ciò, a livello di teoria, esiste un modo in Java per recuperare l'indirizzo dell'oggetto in memoria e trasformarlo in un riferimento all'oggetto o è proprio impossibile? |
![]() |
![]() |
![]() |
#6 |
Junior Member
Iscritto dal: Feb 2004
Messaggi: 23
|
Scusate la formattazione di prima...
Grazie a tutti, comunque! ![]() |
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Dec 2001
Città: Milano
Messaggi: 545
|
In Java, no.
__________________
Angus the Hunter @ Realm of magic | Angus Young @ Batracer °SetiEmperor°| Ninja Technologies { qualunque cosa sia, è veloce e fa male (cit.) } |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 18:55.