2010-05-31 7 views
5

implementazioni di classe pubblica C1 Iterable { elenco LinkedList privato; public static class NC1 { ... } ... x iteratore iteratore pubblico() { return list.iterator(); }} Implementazione dell'interfaccia Java Iterable <E>

ma geme Eclipse (in linea x-ndr):

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

Non capisco dove l'errore è. Qualcuno può aiutare?

+0

ricordarsi di accettare la risposta –

risposta

9

È necessario modificare NC1 a C1.NC1. Il seguente compila:

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

In alternativa, è possibile import static yourpackage.C1.NC1.

+0

giusto, grazie. – Metz

2

questo codice viene compilato bene:

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

    private LinkedList<NC1> list; 

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

, quindi ci deve essere un errore in una parte che si omesso

EDIT:

dopo aver visto l'altra risposta:

sì , Ho attivato l'importazione automatica, quindi hai bisogno di questa riga:

import com.yourpackage.C1.NC1; 
+0

Quale versione di java/eclipse? – aioobe

+0

eclipse non si lamenta più con la soluzione di aioobe. – Metz

+0

Anche risolverlo importando la classe è una buona risposta! –