Que trouve-t-on ... (3 points) dans la source Java? Argument de longueur variable à connaître

Déclencheur

J'ai vu un argument de ... (3 points) dans la source Java.

java:Quoi...Quoi?


    private static void printArgs(String description, Object... args) {
        for (Object object : args) {
            System.out.println(object);
        }
    }

... (trois points) représentent des arguments de longueur variable.

Les arguments de longueur variable peuvent spécifier plusieurs arguments du type spécifié.

Essayez de spécifier l'argument


        //C'est acceptable
        printArgs("Un", "Plusieurs");
        //C'est aussi OK
        printArgs("Deux", "Plusieurs", "La désignation");
        //C'est aussi OK
        printArgs("Trois", "Plusieurs", "La désignation", true);
        //C'est acceptable
        printArgs("Aucun");

résultat


Un:Plusieurs
Deux:Désignation multiple
Trois:Spécification multiple vraie
Aucun: 

Les arguments de longueur variable sont comme définir un tableau.

La compilation d'une méthode d'argument de longueur variable produit un tableau.

Après compilation


    public void methodName(String description, Object[] vars)
Contenu de la méthode.
    }

L'argument de longueur variable peut également être un tableau.

Vous pouvez également spécifier un tableau comme argument


//C'est acceptable
methodName("Tableau", new int[]{1,2,3,4,5});
//Même ça va
methodName("Array et un", new int[]{1,2,3,4,5}, "Plusieurs");

Il existe des règles sur la façon d'utiliser des arguments de longueur variable.

** Ne surchargez pas avec un tableau comme argument ** Raison: il en sera de même une fois compilé

Ne surchargez pas avec un tableau comme argument


    public void methodName(String description, Object... vars)
Contenu de la méthode.
    }
    public void methodName(String description, Object[] vars)
Contenu de la méthode.
    }

** L'argument de longueur variable doit être spécifié à la fin ** Raison: peut-être parce que vous ne savez pas quelle est la valeur spécifiée pour l'argument de longueur variable

L'argument de longueur variable doit être spécifié à la fin


//J'obtiens une erreur de compilation avec args, et j'obtiens ce message avec Eclipse.(Traduction approximative:Écrivez l'argument de longueur variable à la fin)
// 「The variable argument type Object of the method printArgs must be the last parameter」
    private static void printArgs2(Object... args, String description) {
Contenu de la méthode.
    }

** Un seul argument de longueur variable peut être spécifié ** Raison: Vous ne savez peut-être pas où se trouve le premier, et le premier argument de longueur variable n'est pas spécifié à la fin.

Un seul argument de longueur variable peut être spécifié


//J'obtiens une erreur de compilation avec args2, et j'obtiens ce message avec Eclipse.
// 「The variable argument type Object of the method printArgs must be the last parameter」
    private static void printArgs2(String description, String... args2, Object... args) {
Contenu de la méthode.
    }

//Cela n'entraînera pas d'erreur de compilation
    private static void printArgs2(String description, String[] args2, Object... args) {
Contenu de la méthode.
    }

prime

Comment tester une méthode privée qui prend un tableau ou un argument de longueur variable dans JUnit --Qiita

: ensoleillé: Site expliquant les arguments de longueur variable: ensoleillé:

Recommended Posts

Que trouve-t-on ... (3 points) dans la source Java? Argument de longueur variable à connaître
Qu'est-ce que CHECKSTYLE: OFF trouvé dans la source Java? Checkstyle à savoir de
Quelle est la méthode principale en Java?
Que faire lorsque vous souhaitez connaître la position source où la méthode est définie dans binding.pry
La route de JavaScript à Java
Vous voulez savoir ce que Ruby n est la puissance de 2? (Jugement de puissance de 2)
Ce que j'ai fait lors de la migration de la série Spring Boot 1.4 vers la série 2.0
Que faire lorsque Cloud 9 est plein dans le didacticiel Rails
La milliseconde définie dans /lib/calendars.properties de Java jre est UTC
Ce que j'ai fait lors de la migration de la série Spring Boot 1.5 vers la série 2.0
Qu'est-ce qu'une classe en langage Java (3 /?)
Que faire lorsque le préfixe c n'est pas lié dans JSP
Référence Java à comprendre dans la figure
Quelle est la meilleure lecture de fichier (Java)
Qu'est-ce qu'une classe en langage Java (1 /?)
Qu'est-ce qu'une classe en langage Java (2 /?)
[Java] Flux du code source à l'exécution
Comment obtenir la date avec Java
À partir de Java9, les constructeurs de classe correspondant aux types primitifs sont marqués comme obsolètes.
[Débutant] Qu'est-ce que Docker en premier lieu? Explication facile à comprendre des bases!
[Java] Est-il inutile de vérifier "l'identité" dans l'implémentation de la méthode equals ()?
Androd: Que faire à propos de "Le Royaume est déjà dans une transaction d'écriture dans"
Qu'est-ce que JSP? ~ Connaissons les bases de JSP !! ~
Qu'est-ce que le modèle Java Servlet / JSP MVC?
Ce qui est différent du langage PHP. [Remarque]
Quel est le modificateur volatile pour les variables Java?
Que faire lors du débogage "Source non trouvée"
[Java] Mémo sur la façon d'écrire la source
[Java] Quelque chose est affiché comme "-0.0" dans la sortie
Qu'est-ce que Java <>?
Qu'est-ce que 'java
Que faire lorsque «Échec du chargement de la bibliothèque partagée JNI» s'affiche dans Eclipse
La bonne façon de voir la source Tomcat dans Eclipse
[Java] Comment obtenir l'URL de la source de transition
[Java] Comment omettre le constructeur privé dans Lombok
[Java] Je souhaite calculer la différence par rapport à la date
Comment écrire Scala du point de vue de Java
Quel est le meilleur, Kotlin ou futur Java?
[JAVA] Quelle est la différence entre interface et abstract? ?? ??
Classes et instances Java comprises dans la figure
Résumé de la mise en œuvre des arguments par défaut en Java
J'ai essayé d'implémenter la méthode de division mutuelle d'Eugrid en Java
Ce dont les ingénieurs Java ont besoin pour se préparer à la version Java 11
L'histoire que .java est également construite dans Unity 2018
J'ai essayé de découvrir ce qui avait changé dans Java 9
En Java, je souhaite couper plusieurs caractères spécifiés uniquement du début et de la fin.
Changements de Java 8 à Java 11
Somme de Java_1 à 100
Commentaires dans la source Java
Évaluer la source Java à partir de Java
Qu'est-ce que l'encapsulation Java?
De Java à Ruby !!
Qu'est-ce que la technologie Java?
Qu'est-ce que Java API-java
[Java] Qu'est-ce que ArrayList?