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
Freigeben: 2024-12-10 10:16:11
Original
427 Leute haben es durchsucht

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};
Nach dem Login kopieren

Allerdings versuchen Das Zuweisen eines nicht initialisierten Arrays mit geschweiften Klammern führt zu einem Compiler Fehler:

AClass[] array;
...
array = {object1, object2}; // Error
Nach dem Login kopieren

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;
Nach dem Login kopieren

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};
    }
}
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage