Les fonctions à nombre variable d'arguments [Résolu]

Signaler
Messages postés
2333
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
26 juillet 2013
-
Messages postés
37
Date d'inscription
mardi 15 avril 2003
Statut
Membre
Dernière intervention
4 octobre 2006
-
Salut Tous :

Y a t'il en Java un mécanisme pour gérer les fonctions à nombre variable d'arguments qui ressemble à celui du C/C++?

Et Merci ...

5 réponses

Messages postés
37
Date d'inscription
mardi 15 avril 2003
Statut
Membre
Dernière intervention
4 octobre 2006
2
Pour résumer,

Avec Java 1.5 :

void myMethod(Object... args) {
   for(Object o : args) {
      // Traitement
   }
}

Avec une version antérieure à Java 1.5 :

void myMethod(Object[] args) {
   for(int i=0;i      // Traitement
   }
}

BlackWood
Messages postés
358
Date d'inscription
jeudi 24 octobre 2002
Statut
Non membre
Dernière intervention
13 avril 2020

voila un exemple de classe avec la méthode add qui n'a pas un nombre définie d'argument.

public

class
JPanelFlow
extends
JPanel{


     JPanelFlow(){ 
              
super
();


    }


    
void
add(
Component
...comp){   


       
for
(
Component
compo:comp){


            add(compo);


        }      


    }
}
Messages postés
405
Date d'inscription
mardi 18 décembre 2001
Statut
Membre
Dernière intervention
15 juillet 2014
19
non pas tel fprintf en C


par contre tu peux avoir du polymorphisme de signature


public void methode(String a)
public void methode(String a, String b)
public void methode(String a, String b, String c)

si non tu peux passer une tableau d'objet à ta méthode
public void methode(String[] a)
Messages postés
405
Date d'inscription
mardi 18 décembre 2001
Statut
Membre
Dernière intervention
15 juillet 2014
19
ps avec une JVM 1.4 en 1.5 ça a l'air pôssible vu l'exemple précédant.
Messages postés
5348
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
30 mars 2020
95
Salut,

ajout en 1.5:
    arguments variable;
    Scanner (pour les lectures claviers socket, etc...)
    import static
    foreach
    autoboxing
    printf
    top most pour les fenetres
    enum
    etc....

pour la precision
   
add(
Component
...comp) revient à faire add(
Component
[] comp) ,
    vu que tu peux faire :
void add(
Component
...comp){
    int nbArgs = comp.length;
    for(int i = 0; i < nbArgs; i++)
        System.out.println(comp[i]);
}

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA