2010-05-31 6 views
5

öffentliche Klasse C1 implementiert Iterable { private LinkedList-Liste; öffentliche statische Klasse NC1 { ... } ... x öffentliche Iterator-Iterator() { Rückkehr list.iterator(); } }Implementieren der Java Iterable <E> Schnittstelle

aber Eclipse whines (an der x-ed Linie):

- The return type is incompatible with Iterable<NC1>.iterator() 
- implements java.lang.Iterable<NC1>.iterator 

Ich verstehe nicht, wo der Fehler ist. Kann jemand helfen?

+0

denken Sie daran, Antwort zu akzeptieren –

Antwort

9

Sie müssen NC1 zu C1.NC1 ändern. Die folgenden Kompilierungen:

import java.util.*; 

public class C1 implements Iterable<C1.NC1> { 
    private LinkedList<NC1> list; 
    public static class NC1 { 
    } 

    public Iterator<C1.NC1> iterator() { 
     return list.iterator(); 
    } 
} 

Alternativ könnten Sie import static yourpackage.C1.NC1. dieser Code

+0

das ist richtig, danke. – Metz

2

kompiliert just fine:

public class C1 implements Iterable<NC1> { 
    public static class NC1 { 
    } 

    private LinkedList<NC1> list; 

    public Iterator<NC1> iterator() { 
     return this.list.iterator(); 
    } 
} 

, also muss es ein Fehler in einem Teil, den Sie

EDIT weggelassen sein:

, nachdem er die andere Antwort:

ja , Ich habe Auto-Importe eingeschaltet, so dass Sie diese Zeile benötigen:

import com.yourpackage.C1.NC1; 
+0

Welche Version von Java/Eclipse? – aioobe

+0

eclipse jammert nicht mehr mit aioobes Lösung. – Metz

+0

Die Lösung durch Importieren der Klasse ist auch eine gute Antwort! –

Verwandte Themen