cast von Object

Status
Nicht offen für weitere Antworten.

Mark2

Mitglied
hallo,

ich weiss die frage kommt hier tausendfach vor, aber ich würde gerne nochmal klar wissen wollen, ob man tatsächlich Object nur casten kann unter expliziter angabe der klasse?

falls die frage kommt was ich denn vorhabe: ich möchte objekte in einen vector stecken, und dann wieder holen. mein problem ist, dass ich zur laufzeit nicht weiss in welche klasse ich zurückcasten muss.
meine aktuelle lösung sieht so aus, dass ich mit getClass() die klasse erfahre und irgendwie vielleicht als esc-squenz in die castklammer schreibe.
die lösung gefällt mir aber nicht so sehr, weil mir das nicht sauber programmiert erscheint. :!:

was haltet ihr davon? ???:L
 

KSG9|sebastian

Top Contributor
Außerdem geht es nicht..Konstrukte wie

Code:
Vector x = new Vector();
x.put(a);
x.put(b);
x.put(c);

Object a = x.get(0);
z = (a.getClass())a;

"Dynamisches" Casten geht nicht.
 
S

SlaterB

Gast
Vor allem ist es auch niemals notwendig/ macht keinen Sinn.
Casten braucht man nur, um danach Operationen des gecasteten Interfaces aufzurufen. Das interessiert nur im Quellcode.
Bei unbekannten Typ könnte man logischerweise auch nix mit dem dynamisch gecasteten Objekt anfangen.

Mit der Laufzeit hat das wenig zu tun.

------

Falls man nur den Typ des Objektes testen möchte,
was auch mit unbekannten Klassen bestimmt irgendwie Sinn machen könnte:

x.getClass().isInstance(y)
 

Mark2

Mitglied
danke für eure antworten. aber anscheinend versteht ihr mich nicht. ich möchte in ein array vom typ vector (und noch lieber ein treemap) objekte unterschiedlicher klassen abspeichern. diese objekte möchte ich mit ihrem objektnamen suchen.
es mag nicht logisch klingen, weil ich ja in unbekannten objekten nicht weiss welche methoden und variablen vorkommen. ich habe aber in jedem objekt ein identisches attribut, und nur darauf werde ich zugreifen.

PS: wo kann ich denn hier ein photo unter meinen namen eintstellen? unter profil habe ich nix gefunden und unter boardregeln stand nix.
 

André Uhres

Top Contributor
Falls du wissen solltest was ein Interface ist:
Erstelle einfach ein Interface, das alle diese Klassen implementieren, dann brauchste nur den Typ vom Interface.
 

Mark2

Mitglied
ok, ihr habt mich erwischt. ich bin noch kein java experte, und abstract und interface hatte ich mir bisher erspart zu lernen. :###

ich habe jetzt rausgefunden wie man mittels interface allgemein auf jedes objekt zugreift. ist ein wenig umständlich und nicht so direkt wie ich es mir vorgestellt habe. aber man soll ja auch immer mit methoden auf variablen zugreifen...

trotzdem danke für eure hinweise :wink:
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen


Oben