Jeg løb ind i denne situation i dag: En inner class som virtuelt
overskriver en metode fra sin superklasse, og hvis superklasses
konstruktor kalder denne metode. 
Problemet er at indtil superklassens konstruktor bliver færdig har
inner-class'en ikke en reference til sin ydre klasse, så hvis metoden
henviser til felter i den ydre klasse, så giver det en Null Pointer
Exception.
Et eksempel på kode:
--- 
class Outer {
     public static void main(String args[]) {
        Outer o = new Outer();
        Inner i = o.new Inner();
     }
     class Inner extends Super {
         Inner () {
             method();
         }
        void method() {
            System.out.println(Outer.this);
        }
     }
}
abstract class Super {
     Super() {
        method();
     }
     abstract void method();
}
---
Spørgsmålet er så: Er det korrekt opførsel? Jeg kunne ikke finde et
sted i JLS2 der svarede på det. Hvis nogen kan pege på et sted (eller
flere steder) der viser at det er korrekt opførsel, så vil jeg være
taknemmelig.
<URL:
http://java.sun.com/docs/books/jls/second_edition/html/jTOC.doc.html>
(Jeg har løst problemet ved at omskrive programmet, men jeg vil gerne
forstå det bedre).
/L
-- 
Lasse Reichstein Nielsen  -  lrn@hotpop.com
 DHTML Death Colors: <URL:
http://www.infimum.dk/HTML/rasterTriangleDOM.html>
  'Faith without judgement merely degrades the spirit divine.'