Hallo Leute,
unser Informatiklehrer hat uns vor den Ferien die Aufgabe gestellt einen Algorithmus zu schreiben, der Werte in eine Binäre Liste einsortiert.
Zur Vereinfachung mussten wir dies für den Abstrakten Datentyp Item tun, damit man den Algorithmus gewissermaßen nur einmal implementieren muss. Soweit eigentlich einfach.
Item ist eine abstrakte Klasse. MyItem die Tochterklasse von Item. Die vorgegebene Binäre Liste nimmt nur Daten vom Typ Object auf. Wenn ich also etwas aus der Liste herausholen möchte, so muss ich dies erst casten.
Jetzt der Haken:
Ich möchte einen Datensatz, der vom Typ MyItem ist, aus der Binären Liste auslesen, dieser muss aber vom Typ aufgrund der Abstraktion vom Typ Item sein, allerdings gibt die Klasse der Binären Liste nur Datensätze vom Typ Object zurück. Darum folgendes:
Compilert wird dies dann soweit, aber bei der Ausführung des Programms kommt folgende Excemption:
MyItem cannot be cast to Item+
Ich hoffe, dass ich nicht zu viel durmherum erzählt habe und das man mir helfen kann. Wenn jemand die Implementierten Klassen braucht, kann man gerne darum bitten, ich hoffe mein Problem ist so nachvollziehbar.
unser Informatiklehrer hat uns vor den Ferien die Aufgabe gestellt einen Algorithmus zu schreiben, der Werte in eine Binäre Liste einsortiert.
Zur Vereinfachung mussten wir dies für den Abstrakten Datentyp Item tun, damit man den Algorithmus gewissermaßen nur einmal implementieren muss. Soweit eigentlich einfach.
Item ist eine abstrakte Klasse. MyItem die Tochterklasse von Item. Die vorgegebene Binäre Liste nimmt nur Daten vom Typ Object auf. Wenn ich also etwas aus der Liste herausholen möchte, so muss ich dies erst casten.
Jetzt der Haken:
Ich möchte einen Datensatz, der vom Typ MyItem ist, aus der Binären Liste auslesen, dieser muss aber vom Typ aufgrund der Abstraktion vom Typ Item sein, allerdings gibt die Klasse der Binären Liste nur Datensätze vom Typ Object zurück. Darum folgendes:
Java:
Item data = (Item) binList.getObject();
Compilert wird dies dann soweit, aber bei der Ausführung des Programms kommt folgende Excemption:
MyItem cannot be cast to Item+
Ich hoffe, dass ich nicht zu viel durmherum erzählt habe und das man mir helfen kann. Wenn jemand die Implementierten Klassen braucht, kann man gerne darum bitten, ich hoffe mein Problem ist so nachvollziehbar.