Meine Frage bezieht sich auf eine bestimmte Verwendung des statischen Schlüsselworts. Es ist möglich, zu verwenden static
Schlüsselwort, um einen Codeblock innerhalb einer Klasse abzudecken, der nicht zu einer Funktion gehört. Zum Beispiel lässt sich der folgende Code kompilieren:
public class Test {
private static final int a;
static {
a = 5;
doSomething(a);
}
private static int doSomething(int x) {
return (x+5);
}
}
Wenn Sie die static
beschwert es sich, weil die Variable a
es final
. Es ist jedoch möglich, beides zu entfernen final
y static
und kompilieren lassen.
Das ist für mich in beiderlei Hinsicht verwirrend. Wie soll ich einen Codeabschnitt haben, der zu keiner Methode gehört? Wie ist es möglich, ihn aufzurufen? Was ist überhaupt der Zweck dieser Verwendung? Oder besser, wo kann ich eine Dokumentation dazu finden?