Реализация Java Повторяемый интерфейс <E>

общедоступный класс C1 реализует Повторяемый {частный список LinkedList; общедоступный статический класс NC1 {...}... x общедоступный итератор Итератора () {возвращают list.iterator (); }}

но хныканье затмения (в x-ed строке):

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

Я не понимаю, где ошибка. Кто-то может помочь?

5
задан Donal Fellows 31 May 2010 в 13:37
поделиться

2 ответа

Вам необходимо изменить 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();
    }
}

В качестве альтернативы вы можете импортировать статический yourpackage.C1.NC1 .

9
ответ дан 13 December 2019 в 19:22
поделиться

этот код компилируется отлично:

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;
2
ответ дан 13 December 2019 в 19:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: