Maison > Java > javaDidacticiel > Comment puis-je transmettre un tableau en tant qu'arguments à une méthode Java avec des arguments variables ?

Comment puis-je transmettre un tableau en tant qu'arguments à une méthode Java avec des arguments variables ?

DDD
Libérer: 2024-12-08 14:25:10
original
533 Les gens l'ont consulté

How Can I Pass an Array as Arguments to a Java Method with Variable Arguments?

Passer un tableau en tant qu'arguments à une méthode avec des arguments variables en Java

Problème

L'objectif est de créer une méthode Java qui prend un tableau d'arguments et transmet chaque argument individuel à une méthode avec des arguments variables. Cependant, le problème survient lorsque la signature de la méthode déclare un Object[] au lieu d'arguments séparés, ce qui conduit au traitement du tableau comme un seul argument.

Solution

Oui , il est possible de passer un tableau en arguments à une méthode avec des arguments variables en Java. Ceci est rendu possible par le sucre syntaxique de T... qui est équivalent à T[].

Exemple de code

L'exemple suivant illustre comment y parvenir :

public static String ezFormat(Object... args) {
    String format = new String(new char[args.length])
        .replace("", "[ %s ]");
    return String.format(format, args);
}
public static void main(String... args) {
    System.out.println(ezFormat("A", "B", "C"));
    // prints "[ A ][ B ][ C ]"
}
Copier après la connexion

Varargs Gotchas

Passant Null

Sachez que passer null à un paramètre varargs peut entraîner un comportement inattendu. Pour éviter les erreurs, vous pouvez transmettre null sous forme de tableau ou comme argument unique.

Ajout d'arguments supplémentaires

Lors du passage d'un tableau à un paramètre varargs et de l'ajout d'arguments supplémentaires , il est nécessaire de créer un nouveau tableau qui contient à la fois l'argument supplémentaire et les éléments du tableau d'origine.

Passage du tableau de Primitives

Varargs ne fonctionne qu'avec des types référence. Pour transmettre un tableau de primitives, convertissez-les dans leurs classes wrapper correspondantes (par exemple, int[] en Integer[]).

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal