Fehler bei For-Each-Schleife

bspainkf36

Erfahrenes Mitglied
Hey,

ich wollte mal die Erweiterung 1.5 in ein Programm von mir einbauen, erhalte aber immer diese Fehlermeldung :(

Code:
        for(ListIterator litr = neueBitListe.getLinkedList().listIterator(); litr.hasNext();){
           inhalt = inhalt + "Ziehung " + (i+1) + ": " + litr.next() +"\n"; 
           i++;
        }

        for(LinkedList linkedList2 : this.neueBitListe.getLinkedList()){
            //bla Inhalt
        }

Die obere Schleife funktioniert, jedoch will die untere Schleife nicht :( Ich erhalte immer die Fehlermeldung, dass der Rückgabewert von getLinkedList() ein Object ist jedoch vom Typ LinkedList sein soll.

Hier noch mal die Methode getLinkedList();

Code:
  public LinkedList getLinkedList() {
      return linkedList1;
  }

Danke für die Hilfe :)

Greetz Kon
 
Evtl. musst du die LinkedList wie folgt instanzieren:

Code:
LinkedList<Object> linkedList = new LinkedList<Object>();

for(Object o : linkedList) {

    System.out.println(o);
}

... Object kann natürlich jedes beliebige Objekt sein.
 
Hey,
danke für die schnelle Antwort, jedoch hole ich mir die linkedList1 aus einer anderen Klasse. LinkedList1 ist eine instanz von der Klasse LinkedList. Ich verstehe nicht warum der Compiler meckert und meint, dass der Rückgabewert von der Methode ein Objekt ist und nicht speziell eine LinkedList? Wenn ich den Code ein wenig umgestallte, geht es ja. Wobei ich weiß, dass es nicht der Sinn wäre :D Weiß vielleicht jemand weiter?

Code:
 for(Object linkedList2 : this.neueBitListe.getLinkedList()){
            System.out.println(linkedList2);
        }
 
Also, du musst in der anderen Klasse die LinkedList normalerweise so instanzieren:

LinkedList<LinkedList> xxx = new LinkedList<LinkedList>();

Code:
 for(LinkedList linkedList2 : this.neueBitListe.getLinkedList()){
            System.out.println(linkedList2);
        }
 
danke für den Tipp :) hab jetzt meinen Denkfehler gefunden. Und zwar füge ich zur LinkedList ein String-Objekt hinzu.

BitSet bs;

Code:
linkedList1.add(this.lottoZiehungsZähler, (bs.toString() + " " + zahlen[6]));

Ich würfel LottoZahlen und packe die Zahlen 1-6 in eine Bitset - für die Sortierung - und füge anschließend noch die ZusatzZahl hinzu. Wie kann ich denn die Initialisierung der LinkedList1 so umsetzten, dass es mit dem

Code:
private LinkedList<LinkedList> linkedList1 = new LinkedList<LinkedList>();

trotzdem noch geht? Danke für die Hilfe

Greetz Kon
 
Code:
linkedList1.add(this.lottoZiehungsZähler, (bs.toString() + " " + zahlen[6]));

Hm, das wäre dann String... also LinkedList<String> linkedList1 = new LinkedList<String>(); Aber ich kann auch nicht hundertprozentig behaupten, ich habe dein Anliegen verstanden.
 
Zurück