0
Я новичок в Java, и я пытаюсь узнать о реализации Iterable & Iterator.Iterable & Iterator Implementation Issue (JAVA)
import java.util.Iterator;
import java.util.LinkedList;
import java.util.NoSuchElementException;
public class ClassMates implements Iterable{
private String className;
private LinkedList<String> nameList;
public ClassMates(String className){
this.className = className;
this.nameList = new LinkedList<String>();
}
public void addName(String name){
nameList.add(name);
}
public LinkedList<String> getNameList() {
return nameList;
}
@Override
public Iterator<String> iterator() {
return new IteratorClass();
}
// Inner Class
private class IteratorClass implements Iterator<String>{
private int index;
public IteratorClass(){
this.index = 0;
}
@Override
public boolean hasNext() {
return index < nameList.size();
}
@Override
public String next() {
if(hasNext()){
int i = index;
index++;
System.out.println("This is "+ i);
return nameList.get(i);
}
throw new NoSuchElementException();
}
@Override
public void remove() {
throw new UnsupportedOperationException();
}
}
}
Мой вопрос: когда я завершить реализацию и попытаться применить для каждого-к «Iterable» объекта, компилятор сказал типы не совпадают.
Вот основной() исполнение для применять для каждого-:
public class Main {
public static void main(String[] args) {
ClassMates classMates = new ClassMates("03-01");
classMates.addName("Classmate 1");
classMates.addName("Classmate 2");
classMates.addName("Classmate 3");
classMates.addName("Classmate 4");
for(String name : classMates){
//HERE! the compiler report "String" is not match the return type of "classMates"
System.out.println(name);
}
}
Любой человек может указать мне проблему?
спасибо !!!
Благодарности delephin !!! После того, как я просмотрел API, я заметил, который должен заменить на . Благодарим за помощь! –
Рад помочь, и добро пожаловать в переполнение стека. Если этот ответ или любой другой решают вашу проблему, отметьте его как принятый. – delephin