Array-Initialisierungssyntax und Deklarationsbeschränkungen
In Java gibt es verschiedene Möglichkeiten, Arrays zu initialisieren, sie müssen jedoch bestimmte Syntaxregeln einhalten. In diesem Artikel wird erläutert, warum der Java-Compiler die Initialisierung einer Array-Variablen einschränkt, die nicht deklariert wurde.
Beim Deklarieren eines Arrays ist es möglich, es gleichzeitig mit Werten in geschweiften Klammern zu initialisieren. Beispielsweise ist der folgende Code gültig:
AClass[] array = {object1, object2};
Eine andere Möglichkeit besteht darin, das Array mit dem neuen Schlüsselwort zu erstellen und dann seinen Elementen einzeln Werte zuzuweisen:
AClass[] array = new AClass[2]; ... array[0] = object1; array[1] = object2;
Allerdings ist das Der folgende Code ist vom Java-Compiler nicht zulässig:
AClass[] array; ... array = {object1, object2};
Diese Einschränkung ergibt sich aus der Anforderung, dass Arrays deklariert werden müssen, bevor sie initialisiert werden können. Im obigen Code wird die Array-Variable array deklariert, ohne ihre Größe anzugeben oder sie zu initialisieren. Daher erlaubt Java keine direkte Zuweisung von Werten mittels geschweifter Klammern.
Die Motivation der Java-Designer für diese Einschränkung ist unbekannt. Die Regel stellt jedoch die Konsistenz der Sprachsyntax sicher und verhindert mögliche Mehrdeutigkeiten bei der Codeinterpretation.
Obwohl diese Einschränkung manchmal zusätzlichen Code einführen kann, kann sie durch die Verwendung der folgenden Syntax umgangen werden:
AClass[] array; ... array = new AClass[]{object1, object2};
Diese Methode deklariert die Array-Variable ohne Initialisierung und initialisiert sie später mit dem neuen Schlüsselwort und geschweiften Klammern.
Das obige ist der detaillierte Inhalt vonWarum kann ich ein nicht deklariertes Array in Java nicht initialisieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!