Ich bin heute in unserem Code auf diesen Fehler gestoßen, und es hat eine Weile gedauert, bis er es begriffen hat. Ich fand es interessant, also entschied ich mich, es zu teilen. Hier ist eine vereinfachte Version des Problems:
%Vor% Raten Sie, was Test.getTest();
returns & amp; Warum?
Java-Initialisierer sind so definiert, dass sie in derselben Reihenfolge ausgeführt werden, in der sie im Quellcode erscheinen. Daher wird Ihr Initialisierungsblock ausgeführt, bevor Sie dem Text null zuweisen.
pro Tipp gegen solche Fehler: Machen Sie Ihre statischen Variablen endgültig oder verwenden Sie überhaupt keine statischen Variablen.