Oh ! Qu’est-ce que ce ‘…’ dans public static void main(String … args) en Java ?

Les programmeurs Java ont un lien très étroit avec l’écriture de la fonction main sous la forme public static void main(String args). Ceux qui travaillent avec depuis un certain temps sont entrés en profondeur et savent ce que signifie cette déclaration entre parenthèses.

Pour ceux qui ne le savent pas encore peuvent aussi deviner si vous avez bien compris les bases. C’est un tableau de String et il nomme comme ‘args'(forme courte pour argument). Eh bien, ce n’était pas une noix difficile à casser. Mais si je vous demande de deviner ce que ‘String … args’ pourrait signifier, quelles pourraient être toutes les possibilités auxquelles vous pourriez penser ?

C’est ce que vous ressentez ?

Plutôt que de venir directement sur la signification exacte, laissez-moi vous dire quelque chose sur – ELLIPSIS.

L’ELLIPSIS est une série de points ou de points(‘…’) qui sont utilisés dans presque toutes les langues (Non ! pas les langages de programmation, les langues générales- anglais, allemand et ainsi de suite) que nous utilisons généralement intentionnellement pour omettre un mot, une phrase ou une section entière d’un texte sans en altérer le sens original. Les points sont utilisés sans espace entre eux. Un exemple est l’anglais, nous disons : It is not cold… it is freezing cold.

La même chose est utilisée dans les langages de programmation et aussi en mathématiques. Exemple : En mathématiques, il est utilisé comme 1+2+3+…+100 et nous le savons au premier coup d’œil que les points représentent le reste des chiffres manquants . Cela vous semble un peu familier, n’est-ce pas ? L’ellipse est utilisée dans de nombreux langages de programmation, du Pascal au C en passant par le Python, le C++, le Go et le Java. En C, C++ et Java, elle est utilisée comme une fonction variadique, une fonction d’un nombre indéfini d’arguments.

Varargs ou fonction variadique en Java a été introduite comme une fonctionnalité du langage dans J2SE 5.0. L’argument de la méthode peut être déclaré comme un paramètre d’arité variable ou simplement méthode varargs. Cela permet de passer un nombre variable de valeurs du type déclaré à la méthode comme paramètres(y compris sans paramètres) et ces valeurs seront disponibles à l’intérieur de la méthode comme un tableau.

void printNumbers(int... numbers) { 
//numbers represents varargs
for (int num : numbers) {
System.out.println(num);
}
}
// Calling varargs method
printNumbers(1,2,3,4,5);

La sortie serait les nombres affichés comme un par chaque ligne.

Mais pourquoi était-ce nécessaire ?

Dans les versions antérieures de Java, une méthode permettant de prendre un nombre arbitraire de valeurs nécessitait de créer un tableau et de mettre les valeurs dans le tableau avant d’invoquer la méthode. Il est toujours vrai que plusieurs arguments doivent être passés dans un tableau, mais la fonctionnalité varargs automatise et cache le processus. En outre, elle est compatible ascendante avec les API préexistantes. Les trois points indiquent que l’argument peut être passé sous forme de tableau ou de séquence d’arguments.

Hence (String… args) est un tableau de paramètres de type String, alors que String est un paramètre unique. String peut remplir pleinement le même objectif mais juste (String… args)offre plus de lisibilité et de facilité d’utilisation. Il fournit également une option qui nous permet de passer plusieurs tableaux de String plutôt qu’un seul en utilisant String. Il peut être utilisé lorsque le programmeur souhaite vous Varargs selon les exigences du programme.

Si vous avez trouvé le blog utile, montrez votre amour en 👏 .