请问内部类的作用是什么?在设计迭代器模式时,我们必须使用内部类吗?使用内部类是否更好?
请问内部类的作用是什么?在设计迭代器模式时,我们必须使用内部类吗?使用内部类是否更好?
维基百科有一篇关于内部类的好文章。
在迭代器模式中,您不需要使用内部类:
import java.util.*;
public class BitSetIterator implements Iterator<Boolean> {
private final BitSet bitset;
private int index;
public BitSetIterator(BitSet bitset) {
this.bitset = bitset;
}
public boolean hasNext() {
return index < bitset.length();
}
public Boolean next() {
if (index >= bitset.length()) {
throw new NoSuchElementException();
}
boolean b = bitset.get(index++);
return new Boolean(b);
}
public void remove() {
throw new UnsupportedOperationException();
}
}
List#iterator()
返回的声明为内部类的ListIterator
实现需要直接访问List
当前实例的get()
方法。