PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Java Variablen



overfly
27-06-2004, 19:14
Hi Leute ich hab ein kleines Problem mit Java
ich brauche ein globale Variable von der ich allerdings erst während der Ausführung mitgelteilt bekomme welchen typ die Hat
wie mache ich das?
ich hoffe ihr versteht mein Problem
ansonsten einfach noch mal nachfragen

Boron
27-06-2004, 20:24
Abgesehen von primitiven Datentypen (int...) sind alle anderen doch von der Klasse Object abgeleitet.

Wenn es sich also nicht um einen primitiven Datentyp handelt, dann leg doch einfach ein Object an. Zur Laufzeit kannst du dann einfach der Variablen das zuweisen, was du willst. Polymorphie machts möglich. Per Reflection (oder wie das heißt) kannst du dann sogar erfragen, um welchen Typ es sihc genau handelt.

overfly
27-06-2004, 20:26
kann ich ein eine Variable von Objekt type auch selbst gebaute Objekte reinsetzen?

Boron
27-06-2004, 20:39
Das ist ja das witzige bei Java und der Polymorphie.

Wenn du irgendeine Klasse selbst bastelst, dann wird die von Compiler implizit von Object abgeleitet, ob du willst oder nicht.
Du kannst also einem Objekt der Klasse Object alles außer den primitiven Datentypen zuweisen. Mit der Einschränkung, dass du dieses zugewiesene Objekt dann halt nur als Object behandeln kannst. Das heißt, dass du die "Spezialfähigkeiten" (sprich Methoden) deiner Klasse dann nicht ausführen kannst, weil es diese Methoden in de rKlasse Object nicht gibt.
Du müsstest dieses Objekt erst einer Variablen vom Typ deiner Klasse zuweisen um diese Methoden wieder zu nutzen.

overfly
27-06-2004, 20:41
also könnte ich sie darin speichern muss es nur immer neue zuweisen?
so wie wenn ich ein objekt in einer Hashtable speichere?

Boron
27-06-2004, 20:48
Den ersten Satz verstehe ich jetzt nicht ganz :confused:? Macht aber nix.

Aber eine Hashtable passt jetzt ganz gut.
In eine Hashtable kannst du ja auch alles speichern. Auch irgendwelche wilde sebstgeschrieben Klassen.
Genauso machst du es dann mit deinen Object-Objekt (tolle Wortkonstruktion :D). Reinspeichern was du willst. Später entscheiden was du damit machen willst.

overfly
28-06-2004, 19:53
gut jetzt hab ich noch ein weiters Problem dazu
wie finde ich heraus was es für ein Objekt is
also ich will mehrere Spiele über eine Verbindung und einen Server laufen lassen
wie stelle ich das am besten an?
ein einfacher String den ich abfragen kann würde mir vollkommen ausreichen

fs111
28-06-2004, 20:03
Mit instanceof kannst Du abfragen, von was für einem Typ Dein Objekt ist. IDer suchst Du nach etwas anderem?

fs111

overfly
28-06-2004, 20:14
wird sofort ausprobiert

Alex_K
28-06-2004, 21:11
Mit instanceof kannst Du abfragen, von was für einem Typ Dein Objekt ist. IDer suchst Du nach etwas anderem?

naja, genau genommen kannst du abfragen ob die klasse ein untertyp (in der verwendung: ein objekt der klasse A ist auch untertyp der klasse A) eines bestimmten typs ist.
um tatsächlich den typ abzufragen muss man getClass verwenden.

das hört sich jetzt etwas kleinlich an, aber manchmal ist es wichtig das zu unterscheiden.

fs111
28-06-2004, 23:38
Hast ja Recht, die Funktion von instanceof sollte aber für seine Zwecke reichen.

fs111