Hallo liebes Forum,
Ich habe mich jetzt hier mal angemeldet, da mir das große Google nicht weiter helfen konnte...
Folgendes Problem:
Ich muss einen String in ein Objekt einer selbst erstellten Klasse casten.
Um mir selbst etwas mehr in Java beizubringen, versuche ich mich nämlich gerade daran, die Grundstruktur eines Spiels zu entwickeln und muss, damit der Inhalt desselben bequem editierbar bleibt (in einem Editor) jetzt die darin enthaltenen Karten, bzw Levels abspeichern. Speichern scheint gut zu funktionieren, hab mir jede Zeile asugeben lassen, alles an Ort und Stelle. Nur beim Auslesen bekomme ich dieses Problem.
Da es bei dem File für die Optionen, wo ich jedoch nur primitive Dateitypen und Strings brauchte, prima geklappt hat, einen DataInputStream, bzw DataOutputStream zu benutzen (wo ja einzelne Zeilen als Strings hintereinander abgespeichert werden), wollte ich dasselbe System auch bei den Karten anwenden. Jedoch sind diese zur Strukturierung in Zellen aufgeteilt, also Objekte meiner selbst erstellten Klasse Cell. Und nachdem ich alle Zeilen erfolgreich (habe mir wieder alles ausgeben lassen) in eine Queue eingelesen habe, muss ich diese nun in die Cell casten - was mir immer wieder Fehler beschert.
Momentan probiere ich es noch so:
lOptions ist bereits initialisiert. Es handelt sich um eine Queue aus dem Informatikunterricht, in welche die einzelnen Zeilen der Datei hintereinander eingelesen sind. Ich habe den Inhalt überprüft und ich bin mir sicher, dass der Inhalt richtig ist. front() gibt das nächste Element aus, dequeue() löscht es und macht Platz für das nächste.
iCells ist das mehrdimensionale Array vom Typ Cell (meine Klasse), in welchem die Zellen gelagert werden.
i und j werden dabei von einer verschachtelten for-Schleife durchlaufen. Diese funktioniert auf jeden Fall einwandfrei. Diese Schleifen sorgen auch dafür, dass der oben geschriebene Code mehrmals aufgerufen wird.
Der Fehler den ich erhalte, ist Folgender (durch eine catch-Verzweigung erhalten):
Ich habe mich jetzt hier mal angemeldet, da mir das große Google nicht weiter helfen konnte...
Folgendes Problem:
Ich muss einen String in ein Objekt einer selbst erstellten Klasse casten.
Um mir selbst etwas mehr in Java beizubringen, versuche ich mich nämlich gerade daran, die Grundstruktur eines Spiels zu entwickeln und muss, damit der Inhalt desselben bequem editierbar bleibt (in einem Editor) jetzt die darin enthaltenen Karten, bzw Levels abspeichern. Speichern scheint gut zu funktionieren, hab mir jede Zeile asugeben lassen, alles an Ort und Stelle. Nur beim Auslesen bekomme ich dieses Problem.
Da es bei dem File für die Optionen, wo ich jedoch nur primitive Dateitypen und Strings brauchte, prima geklappt hat, einen DataInputStream, bzw DataOutputStream zu benutzen (wo ja einzelne Zeilen als Strings hintereinander abgespeichert werden), wollte ich dasselbe System auch bei den Karten anwenden. Jedoch sind diese zur Strukturierung in Zellen aufgeteilt, also Objekte meiner selbst erstellten Klasse Cell. Und nachdem ich alle Zeilen erfolgreich (habe mir wieder alles ausgeben lassen) in eine Queue eingelesen habe, muss ich diese nun in die Cell casten - was mir immer wieder Fehler beschert.
Momentan probiere ich es noch so:
Java:
Object lString = new String(lOptions.front().toString());
iCells[i][j] = (Cell) lString;
lOptions.dequeue();
iCells ist das mehrdimensionale Array vom Typ Cell (meine Klasse), in welchem die Zellen gelagert werden.
i und j werden dabei von einer verschachtelten for-Schleife durchlaufen. Diese funktioniert auf jeden Fall einwandfrei. Diese Schleifen sorgen auch dafür, dass der oben geschriebene Code mehrmals aufgerufen wird.
Der Fehler den ich erhalte, ist Folgender (durch eine catch-Verzweigung erhalten):
Code:
java.lang.ClassCastException: java.lang.String cannot be cast to Cell