实现Java Iterable <e>接口</e>

时间:2010-05-31 13:28:01

标签: java iterable

公共类C1实现Iterable {            private LinkedList list;            public static class NC1 {               ...            }            ...         x public Iterator iterator(){               return list.iterator();            }         }

但是日食呜呜声(在x-ed线上):

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

我不明白错误在哪里。有人可以帮忙吗?

2 个答案:

答案 0 :(得分:9)

您需要将NC1更改为C1.NC1。以下编译:

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

或者,你可以import static yourpackage.C1.NC1

答案 1 :(得分:2)

这段代码编译得很好:

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

    private LinkedList<NC1> list;

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

,所以你省略的部分必须有错误

编辑:

看到另一个答案后:

是的,我打开了自动导入功能,所以你需要这一行:

import com.yourpackage.C1.NC1;