Typecasts
-
Hi Community!
Ich habe eine Methode get, die Object[] zurückgibt. Dieses ist ein zweideminsionales Array, welches Zeichenketten des Typs String enthalten, die ich aus einer Collection auslese. Dieses Object möchte ich jetzt gernen nach String[] casten. Ich habe das so versucht:
String[] field = (String[])this.head.get(this.head.size()-1);
Aber warum funktioniert das nicht?
Ich habe das jetzt so erfolgreich casten können. Aber warum so umständlich?
Object[] o = this.head.get(this.head.size()-1); String[] field = new String[]{(String)o[0], (String)o[1]};
Vielleicht liegt es daran, wie ich Object[] zurückgebe:
return new Object[]{a.get(index), b.get(index)};
a und b sind Objekte des Typs ArrayList, in dem Strings hinzugefügt wurden.
Thx im Voraus.
Konstantin
-
Ich würde an deiner Stelle sofort auf Java 1.5 umsteigen. Da sparst du dir mit den Generics eine Menge Ärger mit der casterei. Du kannst z.B. direkt eine String-ArrayList anlegen.
Und 1.5 läuft bereits so einwandfrei, dass es (obwohl es offiziell noch ne Beta ist) bereits großflächig (u.a. im Serverbereich meiner Uni) eingesetzt wird. Weil es halt einfach mehr Power hat.