La syntaxe d'initialisation de tableau de Java diffère selon qu'elle est utilisée dans une déclaration ou une affectation.
Lors de la déclaration d'un tableau, les littéraux du tableau peuvent être utilisés pour initialiser ses éléments :
AClass[] array = {object1, object2};
En dehors d'une déclaration, les tableaux peuvent être initialisés à l'aide de l'opérateur new, suivi du nombre d'éléments et des affectations ultérieures :
AClass[] array = new AClass[2]; array[0] = object1; array[1] = object2;
Cependant, il est interdit de tenter d'attribuer un littéral de tableau à une variable de tableau non déclarée :
AClass[] array; ... array = {object1, object2}; // Blocked by Java
Cette restriction est imposée par Java pour des raisons qui peuvent ne pas être immédiatement apparentes.
Comme solution de contournement, la syntaxe suivante peut être utilisée :
AClass[] array; ... array = new AClass[]{object1, object2};
Cette approche combine la création et l'initialisation du tableau en une seule instruction tout en respectant les règles de syntaxe de Java.
Par exemple, considérons l'extrait de code suivant :
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; } } }
Sans la solution de contournement , le code nécessiterait des instructions supplémentaires pour initialiser tempTab avant de l'attribuer à tab.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!