实现 Java Iterable界面

发布于 2024-09-03 06:27:53 字数 404 浏览 10 评论 0原文

公共类 C1 实现 Iterable { 私有链表列表; 公共静态类 NC1 { ... } ... x 公共迭代器 iterator() { 返回列表.iterator(); } 但是

Eclipse 抱怨(在 x-ed 行):

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

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

public class C1 implements Iterable {
private LinkedList list;
public static class NC1 {
...
}
...
x public Iterator iterator() {
return list.iterator();
}
}

but eclipse whines (at the x-ed line):

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

I don't understand where the mistake is. Can someone help?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

穿越时光隧道 2024-09-10 06:27:53

您需要将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();
    }
}

或者,您可以导入 static yourpackage.C1.NC1

You need to change NC1 to C1.NC1. The following compiles:

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

Alternatively, you could import static yourpackage.C1.NC1.

捂风挽笑 2024-09-10 06:27:53

这段代码编译得很好:

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;

this code compiles just fine:

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

    private LinkedList<NC1> list;

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

, so there must be an error in a part you omitted

EDIT:

after seeing the other answer:

yes, I have auto-imports switched on, so you need this line:

import com.yourpackage.C1.NC1;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文