общедоступный класс C1 реализует Повторяемый {частный список LinkedList; общедоступный статический класс NC1 {...}... x общедоступный итератор Итератора () {возвращают list.iterator (); }}
но хныканье затмения (в x-ed строке):
- The return type is incompatible with Iterable<NC1>.iterator()
- implements java.lang.Iterable<NC1>.iterator
Я не понимаю, где ошибка. Кто-то может помочь?
Вам необходимо изменить 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
.
этот код компилируется отлично:
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;