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 :

Passage d'argument d'une classe implémentant une interface


Sujet :

Langage Java

  1. #1
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2007
    Messages
    340
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2007
    Messages : 340
    Points : 379
    Points
    379
    Par défaut Passage d'argument d'une classe implémentant une interface
    Bonjour, mon problème est simple j'aurai besoin de savoir si je peux demander que l'argument d'une méthode soit d'un type de classe implémentant en même temps une interface.

    par exemple :

    J'ai une classe MyClass
    une interface MyInterface

    je veux que la méthode puisse recevoir uniquement des objets de type MyClass implémentant MyInterface.

    voilà c'est pour savoir si c'est possible en java ou si je dois tester dans ma méthode que l'objet implémente bien l'interface au moyen d'un instanceof ou d'un cast.

    Merci

  2. #2
    Membre chevronné Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Points : 2 232
    Points
    2 232
    Par défaut
    Je pense que tu fais une confusion (ou que je ne comprend pas bien la question). Si tu défini le type d'un paramètre d'une méthode comme MyClass le compilateur n'acceptera que des objet de type MyClass.
    Après si tu veux tu peux faire implémenter MyInterface par MyClass mais tu ne pourra pas créer un objet de type MyClass qui implémente MyInterface et un qui ne l'implémente pas.

  3. #3
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2007
    Messages
    340
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2007
    Messages : 340
    Points : 379
    Points
    379
    Par défaut
    J'ai du mal m'expliquer...

    En fait je veux filtrer les objets qui à la fois héritent de MyClass et implémentent MyInterface... si c'est possible.

    Merci quand même

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 252
    Points : 1 419
    Points
    1 419
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public (abstract) class MyClass implements MyInterface {
      ...
    }
    Ou si tu tiens absolument à garder cette classe et cette interface distinctes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public (abstract) class MyChildClass extends MyClass implements MyInterface {
      ...
    }
    Dans ce cas, ensuite, tu fais hériter toutes les classes que tu souhaites de MyClass dans le premier cas ou de MyChildClass dans le second. Pas plus compliqué que ça.

    Edit : j'ai du mal comprendre...

    Voici ce qu'il faut :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public Type myMethod (MyClass mc) {
      if (mc instanceof MyInterface) {
        ... // faire ce qu'il faut si l'objet étend MyClass et implémente MyInterface.
      } else {
        ... // faire ce qu'il faut si l'objet étend MyClass et n'implémente pas MyInterface.
      }
    }

  5. #5
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2007
    Messages
    340
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2007
    Messages : 340
    Points : 379
    Points
    379
    Par défaut
    Merci, je ne peux pas définir de classe MyChildrenClass qui implémente l'interface et étend la classe parce que je travaille avec une bibliothèque que je n'ai pas écrite.

    Je dois donc utiliser instanceof si j'ai bien compris.

    Merci à vous

Discussions similaires

  1. Réponses: 3
    Dernier message: 08/07/2014, 18h41
  2. Réponses: 19
    Dernier message: 14/02/2012, 13h57
  3. Réponses: 2
    Dernier message: 01/12/2011, 13h16
  4. Eval d'une propriété d'une classe dans une classe
    Par bizet dans le forum ASP.NET
    Réponses: 4
    Dernier message: 28/10/2008, 09h43
  5. Réponses: 4
    Dernier message: 17/03/2004, 17h24

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