Partage
  • Partager sur Facebook
  • Partager sur Twitter

Détection d'interfaces

Possible ou non ?

Sujet résolu
    19 août 2009 à 14:25:38

    Bonjour ^^ !

    Je m'intéresse au fonctionnement du clônage en Java ; à ce que j'ai compris n'importe quel objet peut appeler la méthode clone puisqu'elle appartient à la classe Object dont chaque classe hérite. Cependant seules les instances de classes implémentant l'interface Cloneable ne génèreront pas une exception.

    J'aimerais donc savoir comment se débrouille la méthode clone de la classe Object pour connaître les interfaces implémentées par la classe de l'instance appelante ? Y a-t-il une méthode toute simple pour cela ou est-ce plus complexe ?


    Merci d'avance pour votre intérêt et pour vos réponses ^^ .
    • Partager sur Facebook
    • Partager sur Twitter
      19 août 2009 à 14:36:16

      Euh au démarrage ta jvm créer des objets de type Class, contenant un tas d'informations notamment les interfaces qu'implémentent tes classe, suffit alors de voir si ta classe implémente Cloneable ou pas.
      • Partager sur Facebook
      • Partager sur Twitter
        20 août 2009 à 11:27:10

        Merci pour ce début de réponse !

        Pour l'histoire de la JVM je suis d'accord, mais à quel niveau se trouve la demande de vérification ?
        Est-ce inscrit dans les « paramètres » du langage ou bel et bien dans le code ?

        Ce qui découlerait à la question suivante : y a-t-il une manière de vérifier moi-même, via un bout de code, les interfaces d'une instance de classe ? Quelque chose du genre existe en Java ? Du type :

        ...
        Foo a=new Foo();
        
        if (a.implementsInterface(Bar)) {
           ...
        }
        ...
        



        Désolé si toutes ces questions paraîssent idiotes mais ça m'a l'air assez intéressant pour le coup ^^ !
        • Partager sur Facebook
        • Partager sur Twitter
          20 août 2009 à 11:42:14

          Oui, mais tu dois le faire toi même avec la réflexibilité en récupérant les interfaces et en faisant un test pour voir si ta classe implémente cette interface :
          Class c = new maClasse.getClass();
          Class[] interfaces = c.getInterfaces ();
          //Et tu test si le nom de ton interfaces est dans le tableau.
          


          Mais il n'y a pas de méthodes toute faîtes comme tu viens de le mettre, (enfin je peux me tromper mais j'ai jamais vu un code tel que celui que tu viens de mettre.) une méthode du genre est présente dans la jvm mais je ne pense pas qu'on y ai accès.

          C'est ça que tu voulais savoir ?



          • Partager sur Facebook
          • Partager sur Twitter
            20 août 2009 à 11:45:05

            Oui, parfait ^^ .

            Merci à vous deux !
            • Partager sur Facebook
            • Partager sur Twitter

            Détection d'interfaces

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown