Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : Java: Objekt zu Integer



Silver
27-02-2004, 18:27
Hallo Javaianer ;)!

Sagt mal, kann man in Java ein Objekt zu einem Integer casten. Unter c++/c funktionierts auch (letzters mit Strukturen)! Unter Java gibts ja auch nur Referenzen also müsste dass doch auch funktionieren, oder?

mfG

anda_skoa
27-02-2004, 19:12
Unter C/C++ funktioniert das auch nur unter der Annahme, dass eine Adresse in einen int passt, was praktisch nur zufällig auf 32Bit System so der Fall ist, aber wo man auf 64Bittern schön auf die Schauze fällt.

Ciao,
_

peschmae
27-02-2004, 19:31
@Silver: äh, was willst du genau?

Ein beliebiges Objekt hat ja wohl kaum in einem int platz!? Oder willst du nur den Pointer darauf in den int speichern? (Geht net ;))
Was versprichst du dir davon?

MfG Peschmä

Silver
28-02-2004, 07:48
hi!

das problem hat sich erledigt, durch andere Programmlogik! eigentlich hab ich diesen post 3 minuten später nach erstellen gelöscht, funktionierte aber nicht...

mfG

Silver
28-02-2004, 14:46
noch eine Frage an anda_skoa, bezüglich dem adresse zu int casting! da ich leider keinen 64 bitter besitze kann ichs auch nicht testen, aber wenn ich statt int long verwende müsste es doch funktionieren, oder? long funktioniert auch bei 32 bit prozessoren.

mfG

wraith
28-02-2004, 15:59
Ist alles implemention defined
6.3.2.3


5 An integer may be converted to any pointer type. Except as previously specified, the
result is implementation-defined, might not be correctly aligned, might not point to an
entity of the referenced type, and might be a trap representation.

6 Any pointer type may be converted to an integer type. Except as previously specified, the
result is implementation-defined. If the result cannot be represented in the integer type,
the behavior is undefined. The result need not be in the range of values of any integer
type.


Wichtig ist hier der letzte Satz.
Beispielsweise können Zeiger durch eine Struktur von zwei oder mehr Integern repräsentiert sein.

Silver
29-02-2004, 14:04
Hallo!

Also da ich auch in meinem Wrapper auch ein Integer in ein Objekt (u. umgekehrt) caste (unter C++), und das java-gnome.sf.net - Projekt auch dieses Prinzip verwendet, schrieb ich dem Lead-Coder ein Mail, bezüglich, was er darüber denkt und ob er schon "Bugs" in solcher Art von Usern bekam (schließlichs gibts das Projekt schon seit Ende 2000)! Ich bekam von ihm unter anderem folgende Antwort:

" .... I do know that other JNI based libs use an int and claim they run fine on 64 bit (SWT is an example of this)."

Also naja da meherer Projekte auch dieses Casting verwenden, werd ich das wohl dann auch nicht bei meinem Wrapper ändern!

mfG