Heim >Java >javaLernprogramm >Warum kann die „switch'-Anweisung von Java keine Konstanten außerhalb der Kompilierungszeit verwenden?
In Java erfordern Switch-Anweisungen konstante Ausdrücke für Groß- und Kleinschreibung. Während Konstanten wie Foo.BAR konstant erscheinen mögen, gelten sie nicht als Konstanten zur Kompilierungszeit im Sinne der Java Language Specification (JLS). Gemäß JLS §15.28 muss ein konstanter Ausdruck zur Kompilierungszeit bekannt sein.
Warum Foo.BA_ keine Konstante zur Kompilierungszeit ist:
Obwohl Foo.BA_ Variablen sind nach der Feldinitialisierung effektiv konstant, es fehlen ihnen zur Kompilierungszeit konstante Initialisierer. Um Konstanten zur Kompilierungszeit zu erstellen, initialisieren Sie die Variablen explizit mit konstanten Ausdrücken. Zum Beispiel:
public static final int BAR = 1; public static final int BAZ = 2; public static final int BAM = 3;
Alternativen zu Switch-Anweisungen:
Erwägen Sie die Verwendung von Enums anstelle von Int-Konstanten. Allerdings erlegen Aufzählungen zusätzliche Einschränkungen auf, z. B. die Anforderung einer Standard-Groß-/Kleinschreibung, selbst wenn die switch-Anweisung alle Aufzählungswerte abdeckt. Darüber hinaus müssen Fallbezeichnungen explizite Aufzählungswerte und keine Ausdrücke sein, die zu Aufzählungswerten ausgewertet werden.
Einschränkungen für konstante Ausdrücke in Switch-Anweisungen:
Konstante Ausdrücke, die in switch-Anweisungen verwendet werden, haben Spezifische Einschränkungen:
Zusammenfassend lässt sich sagen, dass bei der Verwendung von Switch-Anweisungen in Java darauf geachtet werden muss, dass die Ausdrücke in Fallbezeichnungen sind Konstanten zur Kompilierungszeit. Betrachten Sie Aufzählungen als Alternative, beachten Sie jedoch deren einzigartige Einschränkungen. Wenn Sie diese Anforderungen verstehen, wird die Zuverlässigkeit und Klarheit Ihres Codes verbessert.
Das obige ist der detaillierte Inhalt vonWarum kann die „switch'-Anweisung von Java keine Konstanten außerhalb der Kompilierungszeit verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!