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

Langage Java Discussion :

problème de signature de mes constructeurs


Sujet :

Langage Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 72
    Points : 52
    Points
    52
    Par défaut problème de signature de mes constructeurs
    Bonjour,

    J'ai une classe qui a deux constructeurs différent dont voici les signatures:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    	public ActionLiee(String no,char n, int c, int fr,Collection<MesureAttenuante> lma){
    		this(no,n,c,fr,lma,null);
    	}
     
    	public ActionLiee(String no,char n, int c, int fr,Collection<InterfaceException> le){
    		this(no,n,c,fr,null,le);
    	}
    Et au faite Eclipse considere ces deux signatures comme identiques. Alors que le type de la Collection est bel et bien différent. Si quelqu'un a une idée d'ou vient le probleme.

  2. #2
    Membre du Club Avatar de Liquidsoul
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 51
    Points : 65
    Points
    65
    Par défaut
    Salut,

    Je ne suis pas spécialiste des Collections mais, en spécifiant le type d'élément de ta collection tu ne changes pas le fait que ta collection soit autre chose qu'une... Collection Donc au niveau de java c'est tout pareil.
    Après je peux surement me tromper mais à mon avis il faut que tu fasses la distinctions entre les deux types de collection dans un seul constructeur.

    J'espère avoir pu aider un peu

  3. #3
    Membre chevronné
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Points : 1 787
    Points
    1 787
    Par défaut
    +1

  4. #4
    Membre averti
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    321
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 321
    Points : 360
    Points
    360
    Par défaut
    Le typage des collections permet de réaliser des vérifications à la compilation : en gros il te permet de ne pas avoir à caster tes objets lorsque tu fait un get. Pour autant, le type ne change pas : Collection<MesureAttenuante> ou Collection<InterfaceException> restent des Collections.
    Une solution sale peut etre de permuter l'ordre des parametres meme si cela ne devrait pas etre fait car l'ordre des parametres d'une methode ou d'un constructeur doit etre réfléchi et doit obéir à une certaine logique

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 72
    Points : 52
    Points
    52
    Par défaut
    C'est ce que je pensais mais j'aurais bien voulu avoir une solution propre a ce probleme.

    J'ai pensé passer un autre parametre qui représenterait le type de l'object mais je trouvais ca pas propre non plus. Vous en pensez quoi ?

  6. #6
    Membre chevronné
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Points : 1 787
    Points
    1 787
    Par défaut
    Bof de passer le type en paramètre ... Moi je verrais deux solutions :
    1) tu utilises des tableaux et pas des collections pour ces constructeurs
    2) tu testes en runtime un élément au hasard (mais je trouve ça bof aussi)

    Effectivement, l'ordre des params c'est aussi un peu bidouille ...

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 72
    Points : 52
    Points
    52
    Par défaut
    C'est vrai que le tableau serait une bonne idée mais tous le reste de mes Classes utilisent et renvoient des Collections donc c'est pas trop dans l'idée des tableaux

  8. #8
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,


    Tu peux utiliser des factory :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    class ActionLiee {
    	private ActionLiee(String no,char n, int c, int fr, Collection<MesureAttenuante> lma, Collection<InterfaceException> le){
    		// Constructeur privée qui prend tous les paramètres...
    	}
     
    	public ActionLiee createWithMesureAttenuante(String no,char n, int c, int fr, Collection<MesureAttenuante> lma){
    		return new ActionLiee(no,n,c,fr,lma,null);
    	}
     
    	public ActionLiee createWithInterfaceException(String no,char n, int c, int fr, Collection<InterfaceException> le){
    		return new ActionLiee(no,n,c,fr,null,le);
    	}
    }
    a++

  9. #9
    Membre averti
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    321
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 321
    Points : 360
    Points
    360
    Par défaut
    +1 c'est l'occasion type d'utiliser le pattern factory

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 72
    Points : 52
    Points
    52
    Par défaut
    Merci adiGuba t'as solution semble plutot bien sauf que j'ai rajouté les factory en static sinon ca n'avait pas trop d'utilité.

    Merci a tous pour votre aide

  11. #11
    Membre chevronné
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Points : 1 787
    Points
    1 787
    Par défaut
    Jolie la solution effectivement

  12. #12
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Kuroro
    Merci adiGuba t'as solution semble plutot bien sauf que j'ai rajouté les factory en static sinon ca n'avait pas trop d'utilité.
    Oui en effet

    a++

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

Discussions similaires

  1. Problème avec mes constructeurs
    Par clairetj dans le forum Débuter
    Réponses: 11
    Dernier message: 12/09/2013, 10h09
  2. problème d'apostrophe dans mes requetes
    Par kirian dans le forum Bases de données
    Réponses: 3
    Dernier message: 03/05/2006, 12h06
  3. [Upload] Problème de lien entre mes fichiers
    Par temperature dans le forum Langage
    Réponses: 18
    Dernier message: 25/04/2006, 12h15
  4. Problème de signature d'une assembly
    Par lapec_and_cie dans le forum Delphi .NET
    Réponses: 5
    Dernier message: 23/01/2006, 12h31

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