2010-05-31 8 views
5

public class C1 implementa Iterable { lista privada LinkedList; clase estática pública NC1 { ... } ... x iterador iterador pública() { retorno list.iterator(); }} Implementación de la interfaz Java Iterable <E>

pero se queja de eclipse (en la línea X-ed):

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

no entiendo dónde está el error. ¿Alguien puede ayudar?

+0

recuerde aceptar la respuesta –

Respuesta

9

Necesita cambiar NC1 a C1.NC1. Los siguientes compilaciones:

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

Como alternativa, puede import static yourpackage.C1.NC1.

+0

eso es correcto, gracias. – Metz

2

este código se compila bien:

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

    private LinkedList<NC1> list; 

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

, así que debe haber un error en una parte se omitiera

EDIT:

después de ver la otra respuesta:

sí , Tengo las importaciones automáticas activadas, por lo que necesita esta línea:

import com.yourpackage.C1.NC1; 
+0

¿Qué versión de java/eclipse? – aioobe

+0

eclipse ya no lloriquea con la solución de aioobe. – Metz

+0

Resolverlo mediante la importación de la clase es una buena respuesta también! –

Cuestiones relacionadas