# vector auslesen



## melmager (18. Mai 2004)

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);
      }


----------



## Christian Fein (18. Mai 2004)

Les über den Iterator aus.
Alle Klassen die sich von Collection ableitet bieten dir einen Iterator


```
Vector vector .....

Iterator iterator = vector.iterator();
while(iterator.hasNext()) {
   String bla = (String) iterator.next();
}
```


----------



## Snape (18. Mai 2004)

> _Original geschrieben von melmager _
> Wo ist denn diesmal mein Denkfehler?
> 
> public static void asspass_2() {
> ...



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);


----------

