2010-05-31 9 views
5

public class C1 implementuje Iterable { prywatną listę list powiązanych; publiczna klasa statyczna NC1 { ... } ... x iterator iteratora publicznego() { return list.iterator(); } }Implementowanie interfejsu Java Iterable <E> interface

ale Eclipse skomlenie (na linii X-ED)

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

nie rozumieć, gdy błąd jest. Czy ktoś może pomóc?

+0

pamiętaj, aby zaakceptować odpowiedź –

Odpowiedz

9

Należy zmienić NC1 na C1.NC1. Następujące kompilacje:

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

Alternatywnie, możesz import static yourpackage.C1.NC1.

+0

to prawda, dziękuję. – Metz

2

ten kod kompiluje dobrze:

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

    private LinkedList<NC1> list; 

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

, więc nie musi być błąd w części, którą pominięto

EDIT:

po obejrzeniu inną odpowiedź:

tak , Mam włączone automatyczne importowanie, więc potrzebujesz tej linii:

import com.yourpackage.C1.NC1; 
+0

Która wersja java/eclipse? – aioobe

+0

Zaćmienie już nie jęczy z rozwiązaniem aioobe. – Metz

+0

Rozwiązanie problemu przez zaimportowanie zajęć to również dobra odpowiedź! –

Powiązane problemy