Spencer - this has nothing to do with your original question, so just ignore it unless you're interested. But for EFH:
[EFH]: An instance of a non-static nested class -- a so-called inner class like ClassB -- always has an enclosing instance of the outer class. Not quite. See
JLS 15.9.2 It's possible to define an inner class in a static
context, such as inside a static method, static variable initializer, or class initializer. In such cases there's no accessible outer instance. And while it may
seem as though a nested class created in a static context should be the same as an implicitly static class, and therefore
not an inner class - this is not the case. The rules for "implicitly static" (e.g. something declared as a member of an interface) are not the name as the rules for "declared in a static context". One differene is that an implicilty static class could declare a static member, but an inner class declared in a static context may not:
[ March 04, 2004: Message edited by: Jim Yingst ]