Inline-Initialisierungsblöcke in Java
ich habe ein klasse
public class MyMain{
public static void main(String... arg){
Temp t = new Temp(){
{
System.out.println(" instance initialize");
}
};
}
}
class Temp{
int i;
{
i=9;
System.out.println("Static"+i);
}
Temp(){
System.out.println("Temp const "+i);
}
}
Wenn ich die Hauptmethode ausführe, kommt die Ausgabe:
Static9
Temp const 9
instance initialize
Idealerweise werden die Blöcke vor dem Konstruktor ausgeführt, aber der Inline-Initialisierungsblock wird nach dem Konstruktor aufgerufen. Warum?