Die Array-Initialisierungssyntax von Java unterscheidet sich je nachdem, ob sie in einer Deklaration oder einer Zuweisung verwendet wird.
Bei der Deklaration eines Arrays können Array-Literale verwendet werden, um es zu initialisieren Elemente:
AClass[] array = {object1, object2};
Außerhalb einer Deklaration können Arrays mit dem neuen Operator initialisiert werden, gefolgt von der Elementanzahl und nachfolgenden Zuweisungen:
AClass[] array = new AClass[2]; array[0] = object1; array[1] = object2;
Es wird jedoch versucht, eine Zuweisung vorzunehmen Ein Array-Literal für eine nicht deklarierte Array-Variable ist verboten:
AClass[] array; ... array = {object1, object2}; // Blocked by Java
Diese Einschränkung wird von Java aus Gründen auferlegt, die möglicherweise nicht sofort ersichtlich sind.
Als Workaround kann die folgende Syntax verwendet werden:
AClass[] array; ... array = new AClass[]{object1, object2};
Dieser Ansatz kombiniert die Array-Erstellung und -Initialisierung in eine einzige Anweisung unter Einhaltung der Java-Syntaxregeln.
Betrachten Sie beispielsweise den folgenden Codeausschnitt:
public void selectedPointsToMove(cpVect coord) { if (tab == null) { if (arePointsClose(coord, point1, 10)) { cpVect[] tempTab = {point1}; tab = tempTab; } else if (arePointsClose(point2, coord, 10)) { cpVect[] tempTab = {point2}; tab = tempTab; } else { cpVect[] tempTab = {point1,point2}; tab = tempTab; } } }
Ohne die Problemumgehung würde der Code Folgendes erfordern zusätzliche Anweisungen zum Initialisieren von tempTab, bevor es tab zugewiesen wird.
Das obige ist der detaillierte Inhalt vonWie unterscheidet sich die Array-Zuweisungssyntax von Java innerhalb und außerhalb von Deklarationen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!