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
DDDoriginal
2024-12-08 14:25:10526parcourir

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 ]"
}

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!

Déclaration:
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