Maison > Java > javaDidacticiel > Pourquoi Java empêche-t-il l'affectation de tableaux non initialisés avec des accolades ?

Pourquoi Java empêche-t-il l'affectation de tableaux non initialisés avec des accolades ?

Patricia Arquette
Libérer: 2024-12-10 10:16:11
original
417 Les gens l'ont consulté

Why Does Java Prevent Uninitialized Array Assignment with Curly Braces?

Syntaxe d'affectation de tableau non initialisée

Java permet une initialisation concise des tableaux dans les déclarations :

AClass[] array = {object1, object2};
Copier après la connexion

Cependant, en essayant attribuer un tableau non initialisé avec des accolades entraîne un compilateur erreur :

AClass[] array;
...
array = {object1, object2}; // Error
Copier après la connexion

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;
Copier après la connexion

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};
    }
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal