Referenz als String ausgeben.

Status
Nicht offen für weitere Antworten.

javasdann

Mitglied
Hallo,

ich möchte für eine Sperrverwaltung die Referenzwert eines Objekts ermitteln.
Das bedeutet ich möchte eigentlich einfach nur die Referenz der Instanz als String, Long, Hex oder was auch immer mit System.out.println ausgeben - also die Speicheradresse!

Ich habe mir schon hier und im restlichen Internet den Wolf gesucht :-(
Wäre super, wenn einer ne Idee hätte.

Danke im voraus & Gruß,
Roger
 
toString(), sofern nicht überschrieben.
Wenn du einen Unique-Bezeichner willst, würd ich hashCode() nehmen.
 
Wenn du einfach schreibst

System.out.println(OBJEKTNAME);

bekommt man eine Java-Interne Referenz mit dem Namen und einer Zahl, probiers mal aus!
 
Dise Zahl ist allerdings auch nur der Hashcode, der nichts mit der Speicheradresse zu tun hat, und die Ausgabe machts übrigens auch nur, ewnn toString nicht überschrieben ist.
 
Manfred hat gesagt.:
System.out.println(OBJEKTNAME);

Da wird einfach toString() des Objektes aufgerufen. Die "Referenz" bekommst du aber nur, sofern die Klasse die Methode nicht selber implementiert , bzw. überschrieben hat.
 
Ich habe gedacht, er möchte die richtige Speicheradresse vom Hauptspeicher haben?
Hatte das nicht in C++ etwas mit Pointern zu tun?
 
Ratlos hat gesagt.:
Ich habe gedacht, er möchte die richtige Speicheradresse vom Hauptspeicher haben?
Hatte das nicht in C++ etwas mit Pointern zu tun?

Das geht nicht, da dies ja gerade einer der Haupteigenschaften von Java ist (Abstrahierung gegenüber der Plattform und Hardware)...
 
WOW - das geht ja rasend schnell hier 🙂

Also einfach System.out.println(obj) geht nicht. Es ist die gleiche Ausgabe wie mit dem Zusatz toString()

hashCode liefert mit bei 2 Programmstarts das gleiche Ergebnis. Und das bringt mir auch nix.

Ich möchte einen eindeutigen Wert für einen Programmstart ermitteln ohne Hilfsdateien und DB Einträge mit Zählern.
Hierzu wollte ich die Referenznummer und einen Zeitstempel konkatenieren um eine eindeutige Programm ID zu erstellen.

Gruß,
roger
 
javasdann hat gesagt.:
Also einfach System.out.println(obj) geht nicht. Es ist die gleiche Ausgabe wie mit dem Zusatz toString()

Das ist klar, wenn du die Methode toString() nicht überschrieben hast, da - wie schon mehrfach erwähnt - dann die Methode toString() von Object aufgerufen wird.
 
ja eben, und wenn toString() überschrieben wurde, dann liefert der Aufruf einfach irgendwas, also kann die Idee so nicht funktionieren
Das bedeutet ich möchte eigentlich einfach nur die Referenz der Instanz als String, Long, Hex oder was auch immer mit System.out.println ausgeben - also die Speicheradresse!
das geht nicht, da kommst du nicht ran; warum willst du das ausgeben? Du kannst ja einfach "die Referenz" per

Object o = instanzvonirgendwas;

abspeichern etc, in o ist dann der eindeutige zeiger auf dein Objekt (leider kannst du seinen "Wert" nicht ausdrucken etc)




BeitragVerfasst am: 23. 02. 2005, 16:34 Titel: Zitieren
Druckversion downloaden (dieser Post)
WOW - das geht ja rasend schnell hier icon_smile.gif

Also einfach System.out.println(obj) geht nicht. Es ist die gleiche Ausgabe wie mit dem Zusatz toString()

hashCode liefert mit bei 2 Programmstarts das gleiche Ergebnis. Und das bringt mir auch nix.
Ich möchte einen eindeutigen Wert für einen Programmstart ermitteln ohne Hilfsdateien und DB Einträge mit Zählern.
Hierzu wollte ich die Referenznummer und einen Zeitstempel konkatenieren um eine eindeutige Programm ID zu erstellen.
google nach GUID und Java
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben