IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Collection et Stream Java Discussion :

ArrayList initialisation dans les paramètres d'une fonction


Sujet :

Collection et Stream Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 41
    Points : 39
    Points
    39
    Par défaut ArrayList initialisation dans les paramètres d'une fonction
    Bonjour,

    J'aimerais initialiser une ArrayListe dans les paramètres d'une fonctions :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public ArrayList<ArrayList> maFonction(ArrayList<ArrayList> = "je ne sais pas quoi mettre"){
     
    }
    Comment faire ??

    Merci

    Mageni

  2. #2
    Membre éprouvé
    Inscrit en
    Mars 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2006
    Messages : 848
    Points : 1 078
    Points
    1 078
    Par défaut
    Bonjour

    En java, la déclaration d'une fonction ne contient aucune logique. On ne peut pas déclarer une valeur par défaut et encore moins exécuter du code.

    Pourquoi voudrais-tu faire ça?

  3. #3
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    la seule méthode pour des valeurs par défaut serait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public ArrayList<ArrayList<?>> maFonction(ArrayList<ArrayList<?>> list){
        if (list==null)
            list=.......;//ton code pour initialiser une valeur par défaut.
    }

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 41
    Points : 39
    Points
    39
    Par défaut
    Bonjour,

    Merci de vos réponses.

    Effectivement, je n'avais pas vérifié.
    Comme je faisais un passage pour un bout de code PHP -> JAVA, je n'avais pas essayé de voir si ça marchait avec un truc tout bête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public void maFonction(int i = 0) {}
    Et ça marche pas !

    Donc j'ai trouvé un autre moyen. Mais je trouve dommage qu'on ne puisse pas faire comme ça.
    Du coup on est obligé de faire comme toi tchize_ ...
    Pourquoi un tel choix pour java ??

    Pourquoi voudrais-tu faire ça?
    Ba pour éviter d'avoir 36 arguments inutiles et déjà initialisés.
    En php c'est super pratique ^^

    Encore merci de vos réponses.

    Mageni

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2007
    Messages : 171
    Points : 163
    Points
    163
    Par défaut
    Je ne sais pas ce que tu appelles une fonction. Est-ce une méthode de classe?
    Dans ce cas, rappelle ta ArrayList dans son constructeur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    this.Liste = Liste;
     
    //et en bas de ta classe :
    ArrayList Liste;
    puis dans ta méthode :

  6. #6
    Membre éprouvé
    Inscrit en
    Mars 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2006
    Messages : 848
    Points : 1 078
    Points
    1 078
    Par défaut
    Ba pour éviter d'avoir 36 arguments inutiles et déjà initialisés.
    Alors, s'ils sont inutiles, pourquoi les mettre dans la signature?

    Après, le "déjà initialisés" m'intrigue, peut-être que ces arguments ont leur place en tant que membre de la classe dans ce cas là.

    Sinon, il y a un autre moyen pour avoir des valeurs par défaut : la surchage.

    Tu as une méthode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Object faitTraitement(String arg1, int arg2)
    Si la plupart du temps, tu appelles cette méthode avec le second argument à 0, tu peux surchager la méthode:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Object faitTraitement(String arg1)
    {
        return faitTraitement(arg1, 0);
    }

  7. #7
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Citation Envoyé par Mageni Voir le message
    Pourquoi un tel choix pour java ??
    Parce que, contrairement à java, php était à l'origine un language procédural qui, progressivement, a migré en language objet. Ce genre de système pose des problèmes pas faciles à résoudre en language objet. Dans ton cas, la méthode "propre" pour gérer les valeur par défaut (imaginons trois paramètres de type int, String et float):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public long uneMethode(int i , String s, float f){
    }
    public long uneMethode(int i, String s){
        return uneMethode(i,s,0.0f);
    }
    public long uneMethode(int i){
        return uneMethode(i,"",0.0f);
    }
    Ce qui n'est pas beaucoup plus contraignant mais au moins évite les problèmes qui se posent lors de l'héritage

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 41
    Points : 39
    Points
    39
    Par défaut
    Merci !!

    Exactement ce qu'il me fallait.

    Merci encore de toutes ces réponses.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Question optionnal dans les paramètres d'une fonction
    Par bsangoku dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 18/01/2013, 14h20
  2. Struct dans les paramètres d'une fonction
    Par qdaemon_fr dans le forum C
    Réponses: 3
    Dernier message: 20/04/2011, 14h41
  3. [XL-2007] Insérer une variable dans les paramètre d'un fonction
    Par anolo40 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 17/01/2011, 21h08
  4. Réponses: 2
    Dernier message: 29/08/2007, 19h43
  5. [PHP 4.4.2] Récupérer les paramètres d'une fonction
    Par stailer dans le forum Langage
    Réponses: 5
    Dernier message: 07/04/2006, 21h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo