vector auslesen

melmager

Erfahrenes Mitglied
Wo ist denn diesmal mein Denkfehler?


public static void asspass_2() {
Asspasszeile row;
for (int lo;lo < pass.size();lo++) {
row = pass.elementAt(lo); // hier mault der Compiler
//"Impad.java": Fehler #: 354 : Inkompatible Typen; java.lang.Object wurde gefunden, Asspasszeile ist erforderlich in Zeile 256, Spalte 27
}
}

Was habe ich denn diesmal falsch gemacht ?

Asspasszeile ist ein Classe die als Datenspeicher dient - ein Recordersatz

Und so wird der Vector angelegt:

pass = new Vector();
// lese quellcode file ein
Holequelle assein = new Holequelle(assfile);
while (assein.eoq) {
Asspasszeile erg = new Asspasszeile();
/// schnipp
pass.addElement(erg);
}
 
Les über den Iterator aus.
Alle Klassen die sich von Collection ableitet bieten dir einen Iterator

Code:
Vector vector .....

Iterator iterator = vector.iterator();
while(iterator.hasNext()) {
   String bla = (String) iterator.next();
}
 
Original geschrieben von melmager
Wo ist denn diesmal mein Denkfehler?

public static void asspass_2() {
Asspasszeile row;
for (int lo;lo < pass.size();lo++) {
row = pass.elementAt(lo); // hier mault der Compiler
//"Impad.java": Fehler #: 354 : Inkompatible Typen; java.lang.Object wurde gefunden, Asspasszeile ist erforderlich in Zeile 256, Spalte 27
}
}

Was habe ich denn diesmal falsch gemacht ?

Ich habe die Stellen fett markiert.

public Object elementAt(int index)

Diese Methode benutzt Du. D.h. in Deinem Beispiel wird mit

pass.elementAt(lo)

ein Object zurückgegeben. Du weist dieses Object aber der Variablen row zu, die vom Typ Asspasszeile ist. Damit sind die beiden Typen in dieser Form inkompatibel.

Lösung: einfach auf den Objekttypen im Vector casten:

row = (Asspasszeile) pass.elementAt(lo);
 
Zurück