8
votes

Y a-t-il une différence entre "objet [] x" et "objet x []"?

Je mettais à jour une base de code héritée en Java et j'ai trouvé une ligne comme celle-ci:

Object[] arg = { new Integer(20), new Integer(22) };


0 commentaires

5 Réponses :


4
votes

Il n'y a pas de différence. Les deux sont légaux.

Vous pouvez lire dans la spécification de langue Java http://java.sun.com/docs/books/jls/second_edition/html/arys.doc.html p>

Le [] peut apparaître dans le cadre du type Au début de la déclaration, ou dans le cadre du déclarant pour un variable particulière, ou les deux, comme dans Cet exemple: p>

byte[] rowvector, colvector, matrix[];


1 commentaires

La matrice est particulièrement pervers ..;)



16
votes

Les deux sont légaux et les deux travaillent. Mais placer [] avant que le nom du tableau soit recommandé.

de Javadocs :

Vous pouvez également placer les crochets après le nom de la matrice: xxx

Cependant, la convention décourage cette forme; Les crochets identifient le type de matrice et doivent apparaître avec la désignation de type.


1 commentaires

Mettre le [] avec le type est beaucoup plus clair; Essayez de lire le "[]" comme "Array" - INT [] se lit comme "INT Array", tandis que INT variablename [] en quelque sorte sur la partie "Array" sur une réflexion après coup.



14
votes

Non, ils fonctionnent tous les deux. Mais surveille:

float[] anArrayOfFloats, aSecondVariable;


0 commentaires

0
votes

Réponse courte: non.


0 commentaires

1
votes

Une autre bonne raison d'écrire INTEGER [] INTS au lieu de integer int ds [] est dû à des relations d'héritage: integer [] est le sous-type de numéro [] est le sous-type de objet [] .

En d'autres termes, vous pouvez mettre entiers dans un tableau objet , vous pouvez donc penser au [] dans le cadre de l'objet Définition de type - C'est pourquoi il est logique de le faire près du type au lieu du nom de l'objet.


0 commentaires