|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectcom.jeffpalm.util.AbstractIterator
public abstract class AbstractIterator
This makes it easy to define type-safe iterators.
Simply define an inner interface called Iterator, then
implement it with a static inner class that extends this
class and implements the interface, then add a factory
method called iterator(java.util.Iterator).
Here's an example:
public class Outer {
public interface Iterator {
Outer next();
boolean hasNext();
}
public final static Iterator iterator(java.util.Iterator it) {
return new IteratorImpl(it);
}
private final static class IteratorImpl
extends com.jeffpalm.util.AbstractIterator
implements Iterator {
private IteratorImpl(java.util.Iterator it) { super(it); }
public Outer next() { return (Outer)it.next(); }
}
}
There you go... enjoy!
| Field Summary | |
|---|---|
protected java.util.Iterator |
it
The underlying Iterator. |
| Constructor Summary | |
|---|---|
AbstractIterator(java.util.Iterator it)
Sets the underlying iterator. |
|
| Method Summary | |
|---|---|
boolean |
hasNext()
Same as java.util.Iterator.hasNext(). |
static void |
main(java.lang.String[] args)
For generating one. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
protected final java.util.Iterator it
| Constructor Detail |
|---|
public AbstractIterator(java.util.Iterator it)
| Method Detail |
|---|
public final boolean hasNext()
java.util.Iterator.hasNext().
public static void main(java.lang.String[] args)
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||