Maison > Java > javaDidacticiel > Pourquoi ne puis-je pas initialiser un tableau non déclaré en Java ?

Pourquoi ne puis-je pas initialiser un tableau non déclaré en Java ?

Mary-Kate Olsen
Libérer: 2024-12-15 15:13:24
original
197 Les gens l'ont consulté

Why Can't I Initialize an Undeclared Array in Java?

Syntaxe d'initialisation des tableaux et contraintes de déclaration

En Java, il existe différentes manières d'initialiser des tableaux, mais elles doivent respecter des règles de syntaxe spécifiques. Cet article explique pourquoi le compilateur Java restreint l'initialisation d'une variable de tableau qui n'a pas été déclarée.

Lors de la déclaration d'un tableau, il est possible de l'initialiser simultanément avec des valeurs à l'aide d'accolades. Par exemple, le code suivant est valide :

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

Une autre option consiste à créer le tableau à l'aide du nouveau mot-clé, puis à attribuer des valeurs à ses éléments individuellement :

AClass[] array = new AClass[2];
...
array[0] = object1;
array[1] = object2;
Copier après la connexion

Cependant, le le code suivant n'est pas autorisé par le compilateur Java :

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

Cette restriction découle de l'exigence selon laquelle les tableaux doivent être déclarés avant de pouvoir être initialisés. Dans le code ci-dessus, la variable array array est déclarée sans spécifier sa taille ni l'initialiser. Par conséquent, Java ne permet pas l'attribution directe de valeurs à l'aide d'accolades.

La motivation des concepteurs Java pour cette restriction est inconnue. Cependant, la règle garantit la cohérence de la syntaxe du langage et évite les ambiguïtés potentielles lors de l'interprétation du code.

Bien que cette restriction puisse parfois introduire du code supplémentaire, elle peut être contournée en utilisant la syntaxe suivante :

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

Cette méthode déclare la variable tableau sans initialisation, puis l'initialise plus tard à l'aide du nouveau mot-clé et des accolades.

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