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 :

retourner un type ou un autre..


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de pseudobidon57
    Inscrit en
    Octobre 2006
    Messages
    133
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 133
    Par défaut retourner un type ou un autre..
    Bonjour, je voulais savoir s'il etait possible en java, a l'interieur d'une methode de retourner un resultat qui est par exemple de type boleen, mais en fonction de certaine condition pourrai etre un double par exemple.. (bien sur il y aurait deux variables de type differents mais on retournerait soit l'une soit l'autre..) Si oui, comment faire??

  2. #2
    Membre confirmé Avatar de mattyeux
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    169
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 169
    Par défaut
    Je ne crois pas que cela soit possible, parcontre tu peux utiliser la surcharge de tes fonctions. En gros, tu as deux fonctions du même nom, qui font ce que tu veux mais qui retournent des types différents.
    Ta condition pourrais faire que tu appelle l'une ou l'autre.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if(macondition){
    int monint = mafonction();
    }else{
    bool monbool = mafonction();
    }

  3. #3
    Membre très actif
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    321
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 321
    Par défaut
    Citation Envoyé par mattyeux
    Je ne crois pas que cela soit possible, parcontre tu peux utiliser la surcharge de tes fonctions. En gros, tu as deux fonctions du même nom, qui font ce que tu veux mais qui retournent des types différents.
    Ta condition pourrais faire que tu appelle l'une ou l'autre.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if(macondition){
    int monint = mafonction();
    }else{
    bool monbool = mafonction();
    }
    Attention ce que tu propose est erronné : la surcharge consiste à faire varier en nombre et en type les parametres de la fonction mais il est impossible d'avoir deux méthodes portant le meme nom avec des types de retour differents

  4. #4
    Membre confirmé Avatar de mattyeux
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    169
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 169
    Par défaut
    Selon mes souvenirs je crois qu'on peut, mais ca fait longtemps que j'ai pas fait de java, je vais tester

  5. #5
    Membre confirmé Avatar de mattyeux
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    169
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 169
    Par défaut
    lol, ok ca compile pas. Désolé pour mon ignorance .
    Parcontre, si on change les types des paramètres de la fonction, il est possible de changer le type de retour...
    Peut être que ca pourra aider ...

  6. #6
    Membre très actif
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    321
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 321
    Par défaut
    Il y avait une coquille dans ce que j'ai dit au depart (j'ai editer ma reponse du coup) : cela devient possible si les parametres sont différents meme si cela est a mon avis deconseillé

  7. #7
    Membre très actif
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    321
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 321
    Par défaut
    Une solution est de retourner un élément de type Object : avec l'auto-boxing, cela te sera assez transparent. Toutefois, je pense qu'il n'est pas tres judicieux de faire une telle chose car cela va t'obliger à faire un instanceOf sur le retour de la methode pour savoir ce que tu as récupérer ce qui est a mes yeux un acte à proscrire

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 30
    Par défaut
    Bonjour,

    Pour faire simple, tu peux renvoyer un objet qui contient par exemple le boolean et le double, mais un seul des deux sera rempli.

    Pour faire plus compliqué, tu peux utilisé un conteneur générique avec les templates de JAVA 5.

    Tu aurais une méthode du type T getResult() ou T sera pour toi soit un Boolean soit un Double etc...

    J'espère avoir répondu à ta question.

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

Discussions similaires

  1. [Débutant] Retourner un type Any
    Par peaceinpal dans le forum CORBA
    Réponses: 1
    Dernier message: 23/05/2006, 09h31
  2. lancer un application de type nero ou autre...
    Par doudou1 dans le forum VBScript
    Réponses: 1
    Dernier message: 30/12/2005, 18h46
  3. [retour variable] retourner un type RECORD
    Par tyrann dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 19/11/2005, 14h38
  4. Réponses: 9
    Dernier message: 02/03/2005, 22h46
  5. Réponses: 2
    Dernier message: 07/10/2004, 17h00

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