Heim >Java >javaLernprogramm >Warum verhindert Java die nicht initialisierte Array-Zuweisung mit geschweiften Klammern?
Uninitialisierte Array-Zuweisungssyntax
Java ermöglicht eine präzise Initialisierung von Arrays innerhalb von Deklarationen:
AClass[] array = {object1, object2};
Allerdings versuchen Das Zuweisen eines nicht initialisierten Arrays mit geschweiften Klammern führt zu einem Compiler Fehler:
AClass[] array; ... array = {object1, object2}; // Error
Grund für die Einschränkung
Der konkrete Grund für diese Einschränkung ist unklar. Dies kann an grammatikalischen Komplexitäten oder dem Wunsch liegen, die Konsistenz der Java-Syntax aufrechtzuerhalten.
Problemumgehung
Obwohl nicht so prägnant, können Sie ein nicht initialisiertes Array mit dem neuen initialisieren Operator und weisen Sie dann Elemente explizit zu:
AClass[] array; ... array = new AClass[2]; ... array[0] = object1; array[1] = object2;
Vereinfacht Beispiel
Die Verwendung dieser Problemumgehung im bereitgestellten Codeausschnitt vereinfacht die Array-Initialisierungslogik:
public void selectedPointsToMove(cpVect coord) { if (tab == null) { if (arePointsClose(coord, point1, 10)) tab = new cpVect[]{point1}; else if (arePointsClose(point2, coord, 10)) tab = new cpVect[]{point2}; else tab = new cpVect[]{point1, point2}; } }
Das obige ist der detaillierte Inhalt vonWarum verhindert Java die nicht initialisierte Array-Zuweisung mit geschweiften Klammern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!