今天学习了Iterator模式,但是有一段代码不太明白。你能帮我解决一下吗?
这是一个类:
public class Repository implements Container{
public String[] names = {"John", "Iren", "Anthony", "Lorn"};
@Override
public Iterator getIterator() {
return new MyIterator();
}
private class MyIterator implements Iterator {
int index;
@Override
public boolean hasNext() {
if (index < names.length) {
return true;
}
return false;
}
@Override
public Object next() {
if (this.hasNext()) {
return names[index++];
}
return null;
}
}
}
主要方法:
public static void main(String[] args) {
Repository name = new Repository();
for (Iterator iter = name.getIterator(); iter.hasNext(); ) {
String local = (String) iter.next();
System.out.println("Name = " + local);
}
}
问题是关于方法next()
:
@Override
public Object next() {
if (this.hasNext()) {
return names[index++];
}
return null;
}
我不明白关键字在这种情况下的含义。这是什么引用?
最佳答案
this
关键字是对您所在的非静态方法对象的引用。这里 this
位于 MyIterator
对象的 next()
方法内,因此 this
是对 code>MyIterator
对象。请注意,在提供的代码中,您可以省略 this.
并简单地编写 if(hasNext()) {...}
。
关于 java 。关键字<这个>。迭代器模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31222538/