Von JLS 8.1.3 Inner Klassen und umschließenden Instanzen :
Innere Klassen können keine statischen Initialisierer (§8.7) oder Mitgliederschnittstellen deklarieren.
Was Sie vielleicht wollen, ist eine geschachtelte Klasse:
%Vor% Sie müssen die Klasse InnerClass
als statisch definieren. Aber danach wird es keine reguläre innere Klasse mehr sein.
Wie bereits von @yshavit angegeben, können Sie keine statischen Initialisierer deklarieren, aber aus dem, was ich gefunden habe, können Sie das umgehen, indem Sie eine Methode deklarieren, um beliebige Initialisierungen durchzuführen, und sie einfach beim Definieren der Klassenfelder aufrufen. Zum Beispiel habe ich diesen Iterator implementiert (dies ist eine anonyme innere Klasse):
%Vor%Das fühlt sich sehr hack-y an und ich frage mich, ob ich etwas vermisse, aber das funktioniert völlig und die Initialisierungsmethode wird nur einmal aufgerufen, genau wie ein statischer Initialisierungsblock ...
wäreTags und Links java