Probleme beim casten

Trashmania

Neues Mitglied
hallo,
ich hab ein Problem beim casten wenn ich die serialisierte datei wieder einlesen moechte.

Java:
 	public static ArrayList<Medien> leseMedium()
	{
		@SuppressWarnings("unchecked")
		ArrayList<Medien> array= (ArrayList<Medien>) DatenVerwaltung.objektLaden("Medien.dat");
		return array;
	}

Es kommt dann folgender Fehlercode java.lang.ClassCastException: CD cannot be cast to java.util.ArrayList

CD ist vererbt von Medien

Vielleicht kann mir ja jemand weiterhelfen. Vielen dank im voraus.
 

Trashmania

Neues Mitglied
Java:
	public static Object objektLaden(String dateiName)
	{
		Object objekt = null;
		ObjectInputStream objektEingabe;
		try {
			objektEingabe = new ObjectInputStream(new BufferedInputStream(
					new FileInputStream(dateiName)));
				objekt = objektEingabe.readObject();
			objektEingabe.close();
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (ClassNotFoundException e)
		{
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e)
		{
			e.printStackTrace();
		}
		return objekt;
	}
}
 
G

Gast2

Gast
Die Fehlermeldung sagt dass du keine Liste gespeichert hast sondern ein einzelnes CD Objekt. Das kannst du dann natürlich nicht zu ner ArrayList casten. Schau dir deine Speichermethode mal an.
 
Ist das nicht so, dass wenn z.B. diverse Klassen erben von einem Interface aber nicht untereinander.

Katze und Hund erben von Haustier, aber nicht Katze von Hund.

Also

Java:
public void tierArzt(ArrayList<Haustier> haustiere) {
 haustiere.add(new Katze()); // Katze erbt nicht von Hund
 haustiere.add(new Hund()); // Hund erbt nicht von Katze
}

geht wohl nicht ?

Wenn nicht mit Generics dann mit einem normalen Array oder Wildcards ?
 
N

nillehammer

Gast
Also

Java:
 public void tierArzt(ArrayList<Haustier> haustiere) {
 haustiere.add(new Katze()); // Katze erbt nicht von Hund
 haustiere.add(new Hund()); // Hund erbt nicht von Katze
}
geht wohl nicht ?
Doch! Genau so geht es. Deine ArrayList<Haustier> spezifiziert, dass Du Haustiere in ihr speichern willst. Wenn Hund und Katze Haustiere sind, kannst Du sie darin speichern. Was dann aber nicht geht (oder zumindest nicht ohne Casten), ist Hunde oder Katzen aus der Liste raus zu holen. Rausholen kannst Du nur Haustiere. Nehmen wir die mit zwei Haustieren gefüllte ArrayList aus Deinem Beispiel:
Java:
// Geht, die Zusicherung per Generics ist,
// dass Haustiere in der Liste enthalten sind:
Haustier katze = haustiere.get(0);
Haustier hund = haustiere.get(1);

// Geht nicht, obwohl Du natürlich (noch) weißt,
// dass an 0 eine Katze gepseichert ist
Katze katze = haustiere.get(0);

// Weil Du es weißt, könntest Du casten
// ist aber meist ein Zeichen von faulem Design
Katze katze = (Katze) haustiere.get(0);
 
N

nillehammer

Gast
Ja muss funktionieren, aber wenn Katze und Hund eine ArrayList sind dann wahrscheinlich nicht ?
Hä? Wie kommst Du auf diese Feststellung? Davon stand in den bisherigen Posts nichts.

Abgesehen davon ist es natürlich auch möglich, Collections (also auch ArrayList) in anderen Collections (also auch in einer ArrayList) zu speichern und wieder heraus zu holen.
 
Ja sorry, ist nicht so übersichtlich.
Im Post stand:
Java:
Es kommt dann folgender Fehlercode java.lang.ClassCastException: CD cannot be cast to java.util.ArrayList

CD ist vererbt von Medien

Das sah so aus als wäre CD eine ArrayList.
Womöglich hast du recht das man verschiedene Objekte in eine ArrayList packen kann, obwohl ich das noch von einem Kapitel her kannte, wo Generics dies verhindern sollten das nicht gleiche Objekte(Klassen, ArrayLiist usw.) in die gleiche ArrayList gepackt werden. Oder hat sich bei Generics etwas geändert seit Java 5 ?

Der Fragestellende hat vermutlich mehr Infos über seinen Code.
 
S

SlaterB

Gast
> Oder hat sich bei Generics etwas geändert seit Java 5 ?

du siehst das zu eng,
ArrayList<Haustiert> verbietet alle Klassen außer Haustieren, erlaubt aber verschiedene Unterklassen
 

HimBromBeere

Top Contributor
Zurück zum Thema:
Java:
ArrayList<Medien> array= (ArrayList<Medien>) DatenVerwaltung.objektLaden("Medien.dat");
Hier willst du ja wohl eine Liste erhalten. deine Methode gibt aber keine Liste zurück, sondern nur ein einzelnes Object:
Java:
Object objekt = null;
ObjectInputStream objektEingabe;
try {
    objektEingabe = new ObjectInputStream(new BufferedInputStream(new FileInputStream(dateiName)));
    objekt = objektEingabe.readObject();
    objektEingabe.close();
} catch (FileNotFoundException e) {...}
Also meines Erachtens nach, gibt deine Methode nur ein
Code:
Object
zurück. Du kannst dieses Objekt aber per
Code:
List#add()
in deine
Code:
ArrayList
schreiben:
Java:
haustiere.add((Haustier) objektladen(datei));
Oder du müsstest deine Methode umschreiben, damit sie gleich mal eine ganze Sammlung von Objekten zurückgibt. Dafür müsstest du aber auch die ganze Datei lesen, und nicht nur ihr erstes Objekt.
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
tom.j85 TicTacToe - probleme beim Casten Java Basics - Anfänger-Themen 6
G Probleme beim casten von double zu int Java Basics - Anfänger-Themen 3
C Probleme beim casten und Objekt zugriff Java Basics - Anfänger-Themen 12
I Projekte in IDE untereinander sharen / Probleme beim Build Java Basics - Anfänger-Themen 8
T Probleme beim Import eines Git-Repos Java Basics - Anfänger-Themen 2
N Probleme beim printen von Arrays durch for Schleife Java Basics - Anfänger-Themen 3
D Probleme beim Kompelieren mache ich etwas falsch ? Java Basics - Anfänger-Themen 3
K Probleme beim Programm schreiben - Lesen von Dateiinhalten -zaehlen von Wörtern/ Buchstaben Java Basics - Anfänger-Themen 4
M Probleme beim aktualisieren eines JPanels Java Basics - Anfänger-Themen 7
J Probleme beim Array ausgeben Java Basics - Anfänger-Themen 4
M Probleme beim verwenden von Packages Java Basics - Anfänger-Themen 6
G Methoden Probleme beim Methodenaufruf Java Basics - Anfänger-Themen 2
M Array mit eigenem Datentyp probleme beim übergeben Java Basics - Anfänger-Themen 6
J Probleme beim schreiben von Dateien Java Basics - Anfänger-Themen 5
A Probleme beim zykl. aktulisieren von Daten in JTable Java Basics - Anfänger-Themen 3
M Erste Schritte Probleme beim Verknüpfen von Methoden Java Basics - Anfänger-Themen 15
A Probleme beim Methodenaufruf von Object[] ! Java Basics - Anfänger-Themen 12
A Probleme beim Methodenaufruf von char[] ! Java Basics - Anfänger-Themen 10
D JTable Probleme beim Sortieren von Zahlen. Java Basics - Anfänger-Themen 6
M OOP Probleme beim Funktionsaufruf, Java OpenCV Java Basics - Anfänger-Themen 0
X Probleme beim rekursiven Durchsuchen von Verzeichnissen Java Basics - Anfänger-Themen 1
B Probleme beim einlesen einer short variablen für einen Array Java Basics - Anfänger-Themen 1
A LinkedList: Probleme beim Auslesen Java Basics - Anfänger-Themen 2
F Probleme beim Übersetzen Java Basics - Anfänger-Themen 7
O Probleme beim import von Projekten in Eclipse Java Basics - Anfänger-Themen 7
C OOP Probleme beim Addieren von Arrays Java Basics - Anfänger-Themen 4
N Probleme beim entfernen eines JPanels Java Basics - Anfänger-Themen 4
J Probleme beim JRadioButton Java Basics - Anfänger-Themen 2
S Klasse properties - Probleme beim umwandeln Java Basics - Anfänger-Themen 3
M Input/Output Probleme beim Parsen von CSV und TXT Dateien Java Basics - Anfänger-Themen 7
C Probleme beim Array Java Basics - Anfänger-Themen 6
G Probleme beim HTML auslesen Java Basics - Anfänger-Themen 6
N Probleme beim Rechnen mit Integer und double Java Basics - Anfänger-Themen 4
C Input/Output Probleme beim .jar erstellen Java Basics - Anfänger-Themen 5
M Klassen Probleme beim Debuggen - Datentypkonvertierung - Speichern in Datei Java Basics - Anfänger-Themen 7
W Probleme beim Wiedereinstieg Java Basics - Anfänger-Themen 25
P Interpreter-Fehler Probleme beim Ausführen einer Jar Datei Java Basics - Anfänger-Themen 2
F MVC -> Probleme beim Controller Java Basics - Anfänger-Themen 6
0 Log4J Probleme beim einlesen der Log datei Java Basics - Anfänger-Themen 2
F Probleme beim umwandeln von String in Int Java Basics - Anfänger-Themen 10
M Kontaktbuch - Probleme beim Input Java Basics - Anfänger-Themen 3
H Probleme beim erzeugen einer Headerdatei mit javah Java Basics - Anfänger-Themen 3
T Interpreter-Fehler Probleme beim .jar ausführen mit JRE 64bit Java Basics - Anfänger-Themen 9
M Probleme beim Beenden eines Threads Java Basics - Anfänger-Themen 25
A Probleme beim erstellen einer lauffähigen jar Java Basics - Anfänger-Themen 3
A Probleme beim IntervallCheck Java Basics - Anfänger-Themen 4
M Probleme beim Aufruf von Listener in anderer Klasse Java Basics - Anfänger-Themen 9
R Probleme mit NullPointer beim Mp3 abspielen (JMF) Java Basics - Anfänger-Themen 21
I Probleme beim Laden einer .gif-Datei. Java Basics - Anfänger-Themen 8
I Probleme beim Laden eins BufferedImage Java Basics - Anfänger-Themen 8
Sebi Probleme beim Kompilieren Java Basics - Anfänger-Themen 11
I Probleme beim adden von Elementen in einer ArrayList Java Basics - Anfänger-Themen 10
L Probleme beim Ausführen des Programms Java Basics - Anfänger-Themen 9
N Probleme beim abfangen von fehlern Java Basics - Anfänger-Themen 4
B kleine Probleme beim auslesen einer m3u Datei Java Basics - Anfänger-Themen 3
S Probleme beim Umwandeln von Long nach Int Java Basics - Anfänger-Themen 4
G Probleme beim Zufügen eines JLabels Java Basics - Anfänger-Themen 18
M Probleme beim Jar erstellen Java Basics - Anfänger-Themen 7
M Probleme beim Objekzugriff auf andere Klasse: NullPointerExc Java Basics - Anfänger-Themen 5
I Probleme beim Einrichten von Java (PATH-Veriable) Java Basics - Anfänger-Themen 4
A Memory Probleme beim Laden von thumbnails Java Basics - Anfänger-Themen 3
G Probleme beim Login (Webservice) Java Basics - Anfänger-Themen 4
B Probleme beim Kompilieren. Java Basics - Anfänger-Themen 12
M probleme beim parsen Java Basics - Anfänger-Themen 7
R Probleme beim Repaint Java Basics - Anfänger-Themen 3
M probleme beim applet einbinden Java Basics - Anfänger-Themen 7
L beim ersten compilen schon erste probleme Java Basics - Anfänger-Themen 8
R Probleme beim umwandeln eines String zu einem Int Wert Java Basics - Anfänger-Themen 3
M Probleme beim Datei auslesen Java Basics - Anfänger-Themen 6
M Probleme beim Compileren Java Basics - Anfänger-Themen 29
I Probleme beim ausführen des Programms Java Basics - Anfänger-Themen 6
kulturfenster Probleme beim Erstellen von Objekten Java Basics - Anfänger-Themen 15
kulturfenster Probleme beim Zeichnen einer Geraden Java Basics - Anfänger-Themen 8
S Probleme beim Java Kompilieren + ausführen Java Basics - Anfänger-Themen 6
M probleme beim kompilieren / übersetzen ! Systemeinstellung ? Java Basics - Anfänger-Themen 5
I Probleme beim Ausführen von Anwendungen Java Basics - Anfänger-Themen 2
S Probleme mit Datentyp beim Einlesen Java Basics - Anfänger-Themen 4
I java - probleme beim complimieren Java Basics - Anfänger-Themen 4
L Probleme beim ersten JavaProgramm! Java Basics - Anfänger-Themen 4
P Probleme beim Exportieren einer jar datei Java Basics - Anfänger-Themen 8
M Probleme beim Strich(e) zwichen Java Basics - Anfänger-Themen 3
M Probleme beim Drucken Java Basics - Anfänger-Themen 4
M Probleme beim Zuweisen eines Arbeitsverzeichnis Java Basics - Anfänger-Themen 2
A Probleme beim char-Vergleich! Java Basics - Anfänger-Themen 9
G Probleme beim Compilieren Java Basics - Anfänger-Themen 6
J Probleme beim Vererben Java Basics - Anfänger-Themen 2
B Probleme beim Dateien auslesen Java Basics - Anfänger-Themen 12
C Probleme beim overloaden. Java Basics - Anfänger-Themen 2
W MouseListener Probleme beim Abfangen Java Basics - Anfänger-Themen 8
X probleme beim import Java Basics - Anfänger-Themen 3
S Probleme beim Füllen einer HashMap Java Basics - Anfänger-Themen 15
K Probleme beim Einstieg Java Basics - Anfänger-Themen 2
I Probleme beim Ansprechen eines Arrays Java Basics - Anfänger-Themen 12
T Probleme beim Einlesen eines Strings Java Basics - Anfänger-Themen 3
K Neuronales Netz in Java und Probleme beim Konfigurieren Java Basics - Anfänger-Themen 2
N Probleme beim generieren von Objekten Java Basics - Anfänger-Themen 2
G Unknown Source Probleme beim Starten des Prgramms Java Basics - Anfänger-Themen 2
J probleme beim wieder aufruf Java Basics - Anfänger-Themen 2
J Probleme beim Erstellen eines Programms Java Basics - Anfänger-Themen 5
D Rekursions Probleme / frage Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben