:O More excellence. I'll update to use that as soon as I get this set of changes working. (That's the problem with javadoc - all generated documentation, really: it tells you what a class does, but it doesn't tell you which class does what you're trying to do.) I wonder why they don't offer concrete implementations and demand you use the factory functions instead, though. And I'm still rather fond of the pseudo-iterator functionality.
Next question: How do I check if two instances of Inner have the same Outer instance? I.e. I'm trying to implement .equals() for Inner, and
public boolean equals(Object other) { if (!(other instanceof Inner)) return false; Inner i = (Inner)other; // Outer.this == i.this // doesn't work // Outer.this == Outer.i // doesn't work}
Again the only thing that seems to be working is to route through a private method.