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

avec Java Discussion :

Comment Créer plusieurs constructeur de même type ?


Sujet :

avec Java

  1. #1
    Membre du Club Avatar de mobi_bil
    Profil pro
    Inscrit en
    Février 2009
    Messages
    242
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 242
    Points : 52
    Points
    52
    Par défaut Comment Créer plusieurs constructeur de même type ?
    Bonjour à tous,
    Supposons la classe suivante :

    class affichage ()
    {

    public affichage (LinkedList<Col> liste)
    {
    //traitement
    }


    }
    Je veux ajouter un autre constructeur :
    public affichage (LinkedList<Text> liste)
    Le problème c'est que le compilateur me signale une erreur de duplication de constructeur.

    Y a-t-il un moyen de résoudre ce problème sans créer une autre classe ?
    Merci pour votre aide

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Mai 2009
    Messages : 104
    Points : 103
    Points
    103
    Par défaut
    Bonjour. Je ne suis pas sûr du résultat mais essai toujours de passer en paramètre quelque chose de plus générique: une list<Col> et une list<Text>.
    Dans le pire des cas déclare un constructeur vide et fait appel aux setters

  3. #3
    Membre habitué
    Inscrit en
    Juin 2009
    Messages
    138
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Juin 2009
    Messages : 138
    Points : 159
    Points
    159
    Par défaut
    Tout d'abord, par convention, les classes en Java prennent un majuscule : Affichage

    et puis, si tu déclares avec une liste d'Object, ça marcherait pas ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public Affichage (LinkedList<Object> liste)

  4. #4
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    C'est un problème de conception. Tu dois redéfinir ton besoin. Puisqu'il est impossible de faire deux constructeurs avec une signature identique, tu dois penser autrement.
    Quel sera la différence de code entre ces deux constructeur ? Comment le code appelant doit choisir entre l'un et l'autre constructeur ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  5. #5
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Octobre 2004
    Messages
    398
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2004
    Messages : 398
    Points : 710
    Points
    710
    Par défaut
    Citation Envoyé par mobi_bil Voir le message
    Bonjour à tous,
    Supposons la classe suivante :



    Je veux ajouter un autre constructeur :

    Le problème c'est que le compilateur me signale une erreur de duplication de constructeur.

    Y a-t-il un moyen de résoudre ce problème sans créer une autre classe ?
    Merci pour votre aide
    probleme de conception la,tu peux pas avoir une meme signature de methode ou constructeur, sinon comment determiner quel constructeur appeler ?

    mais tu peux mettre un enum en parametre, et
    selon sa valeur t'appelles une methode qui fait ce que tu souhaites ...

  6. #6
    Membre confirmé
    Inscrit en
    Juillet 2006
    Messages
    534
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 534
    Points : 562
    Points
    562
    Par défaut
    Bonjour,

    Si tu veux utiliser la même signature pour un constructeur tu peux faire comme bého32 a dit

    public affichage (LinkedList<Object> liste)
    Quite à faire un test dans ta classe affichage pour faire des traitements spécifiques selon Object = Col ou Text

  7. #7
    Membre du Club Avatar de mobi_bil
    Profil pro
    Inscrit en
    Février 2009
    Messages
    242
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 242
    Points : 52
    Points
    52
    Par défaut
    Bonjour à tous, et merci beaucoup.
    finalement, j'ai réglé le problème, j'ai mis un enum en paramètre.
    Encore, merci.

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 02/05/2014, 11h10
  2. [oracle10g] comment créer plusieurs instances
    Par Loïck dans le forum Oracle
    Réponses: 2
    Dernier message: 16/02/2007, 08h49
  3. Réponses: 18
    Dernier message: 21/09/2006, 11h54
  4. [Thread]Comment créer plusieurs thread à la demande??
    Par Devil666 dans le forum Concurrence et multi-thread
    Réponses: 8
    Dernier message: 14/09/2005, 13h29

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