Heim >Java >javaLernprogramm >Warum verhindert Java die nicht initialisierte Array-Zuweisung mit geschweiften Klammern?

Warum verhindert Java die nicht initialisierte Array-Zuweisung mit geschweiften Klammern?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-10 10:16:11421Durchsuche

Why Does Java Prevent Uninitialized Array Assignment with Curly Braces?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn