Gibt es einen Unterschied zwischen "Object [] x" und "Object x []"?

8

Ich habe eine Legacy-Code-Basis in Java aktualisiert und eine Zeile wie diese gefunden:

%Vor%

Diese Zeile hat meine Aufmerksamkeit erregt, weil ich an diese Art von Code gewöhnt bin:

%Vor%

Der Inhalt des Arrays ist hier nicht wichtig. Ich bin neugierig auf die Klammern neben dem Variablennamen im Vergleich zu den Klammern neben dem Klassennamen. Ich habe es in Eclipse (mit Java 5) versucht und beide Zeilen sind für den Compiler gültig.

Gibt es einen Unterschied zwischen diesen Erklärungen?

    
JuanZe 09.02.2010, 14:08
quelle

5 Antworten

15

Beide sind legal und beide arbeiten. Aber [] vor dem Namen des Arrays wird empfohlen.

Von Javadocs :

  

Sie können die eckigen Klammern auch hinter dem Namen des Arrays platzieren:

%Vor%
  

Konvention jedoch entmutigt diese Form; Die Klammern identifizieren den Array-Typ und sollten mit der Typbezeichnung erscheinen.

    
codaddict 09.02.2010, 14:10
quelle
14

Nein, sie arbeiten beide. Aber aufgepasst:

%Vor%

deklariert ein Array aus Floats und einem Float, während:

%Vor%

deklariert zwei Arrays von Floats.

    
froadie 09.02.2010 14:14
quelle
4

Es gibt keinen Unterschied. Beide sind legal.

Sie können die Java-Sprachspezifikation Ссылка

  

Das [] kann als Teil des Typs angezeigt werden   zu Beginn der Erklärung,   oder als Teil des Deklarators für a   bestimmte Variable oder beides, wie in   Dieses Beispiel:

%Vor%
    
Pawel Szulc 09.02.2010 14:09
quelle
1

Ein weiterer guter Grund, Integer[] ints anstelle von Integer ints[] zu schreiben, liegt an den Vererbungsbeziehungen: Integer[] ist Untertyp von Number[] ist Untertyp von Object[] .

Mit anderen Worten, Sie können Integers in ein Array Object setzen, so dass Sie sich das [] als Teil der Typdefinition des Objekts vorstellen können - deshalb ist es sinnvoll, es in der Nähe des Geben Sie anstelle des Objektnamens ein.

    
Matthias 09.02.2010 15:02
quelle
0

Kurze Antwort: Nein.

    
Jay 09.02.2010 14:31
quelle

Tags und Links