Maison >Java >javaDidacticiel >Pourquoi Java empêche-t-il l'affectation de tableaux non initialisés avec des accolades ?
Syntaxe d'affectation de tableau non initialisée
Java permet une initialisation concise des tableaux dans les déclarations :
AClass[] array = {object1, object2};
Cependant, en essayant attribuer un tableau non initialisé avec des accolades entraîne un compilateur erreur :
AClass[] array; ... array = {object1, object2}; // Error
Raison de la restriction
La raison spécifique de cette restriction n'est pas claire. Cela peut être dû à des complexités grammaticales ou au désir de maintenir la cohérence dans la syntaxe de Java.
Solution de contournement
Bien que ce ne soit pas aussi concis, vous pouvez initialiser un tableau non initialisé avec le nouveau opérateur puis attribuez explicitement les éléments :
AClass[] array; ... array = new AClass[2]; ... array[0] = object1; array[1] = object2;
Simplifié Exemple
L'utilisation de cette solution de contournement dans l'extrait de code fourni simplifie la logique d'initialisation du tableau :
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}; } }
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!