Si je déclare un tableau String
:
String names[] = new String[3];
Alors pourquoi ne pouvons-nous pas attribuer des valeurs au tableau déclaré ci-dessus comme ceci:
names = {"Ankit","Bohra","Xyz"};
Vous pouvez effectuer les opérations suivantes pendant la déclaration:
String names[] = {"Ankit","Bohra","Xyz"};
Et si vous voulez le faire quelque part après la déclaration:
String names[];
names = new String[] {"Ankit","Bohra","Xyz"};
names[] = {"Ankit","Bohra","Xyz"};
est un initialiseur et utilisé niquement lors de la construction ou de la création d'un objet nouvea tableau. Il ne peut pas être utilisé pour définir le tableau. Vous pouvez l'utiliser lorsqu'il est déclaré comme:
String[] names= {"Ankit","Bohra","Xyz"};
Vous pouvez également utiliser:
names=new String[] {"Ankit","Bohra","Xyz"};
Tout d’abord, cela n’a rien à voir avec String
, il s’agit des tableaux .. et cela aussi de l’initialisation déclarative des tableaux.
Comme discuté par tout le monde dans presque toutes les réponses, vous pouvez, tout en déclarant une variable, utiliser:
String names[] = {"x","y","z"};
Toutefois, après la déclaration, si vous souhaitez affecter une instance de tableau:
names = new String[] {"a","b","c"};
Autant que je sache, la syntaxe de déclaration est simplement un sucre syntaxique ((== --- ==)) et cela n’est plus applicable lors de l’affectation de valeurs à des variables car lorsqu’elles sont affectées, vous devez créer une instance correctement.
Cependant, si vous nous demandez pourquoi il en est ainsi? Eh bien ... bonne chance pour obtenir une réponse à cette question. À moins que quelqu'un du comité Java ne réponde cela ou qu'il existe une documentation explicite citant ledit sucre syntaxique .
Tu veux dire comme:
String names[] = {"Ankit","Bohra","Xyz"};
Mais vous ne pouvez le faire que dans la même déclaration lorsque vous le déclarez
Ce n'est tout simplement pas une syntaxe valide de Java. Tu peux faire
names = new String[] {"Ankit","Bohra","Xyz"};