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 :

[Language][1.5]Question interfaces multiple:


Sujet :

Langage Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    509
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 509
    Points : 568
    Points
    568
    Par défaut [Language][1.5]Question interfaces multiple:
    Je me posais une question !!
    Cette question la voici :

    Imaginons 2 interfaces :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
    public interface TestInterface {
     
    	public String getTest();
    }
     
    public interface TestAutreInterface {
     
    	public int getTest();
     
    }
    Maintenant histoire de compliquer la chose je voudrais une classe qui implemente les deux interfaces et bien la d'apres moi on est confronté a un probleme .
    En effet le compilateur ne nous permet pas d'implementer les deux methode puisqu'elles ont la meme signature (ou prototype : ), mais lorsqu'on en implemente une il nous dit que le type de retour ne correspond pas à l'autre methode de l'autre interface et inversement .

    Donc est il possible d'implementer 2 interfaces possedant des methodes ayant la meme signature (prototype ??) mais avec un type de retour different ?

    PS: ceci n'est pas un cas concret , il est juste issue de mon esprit ,d'ailleur je me fais un peu peur !!!!
    UML avec VIOLET

  2. #2
    Membre émérite
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Points : 2 410
    Points
    2 410
    Par défaut
    Bonjour,
    T'as essayé de compiler ? A mon avis, meme en déclarant une classe abstraite qui n'implémente aucune des 2 méthodes, ca plante.
    "Le bon ni le mauvais ne me feraient de peine si si si je savais que j'en aurais l'étrenne." B.V.
    Non au langage SMS ! Je ne répondrai pas aux questions techniques par MP.
    Eclipse : News, FAQ, Cours, Livres, Blogs.Et moi.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    509
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 509
    Points : 568
    Points
    568
    Par défaut
    Effectivement je viens d'essayer et rien que le fait de signaler qu'on va implementer les deux interfaces ne plait pas au compilateur .
    Ce n'est donc pas possible !
    Pourtant je dirais que la situation pourrait arrivé !!
    UML avec VIOLET

  4. #4
    Membre expérimenté Avatar de BainE
    Inscrit en
    Mai 2004
    Messages
    1 327
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 1 327
    Points : 1 544
    Points
    1 544
    Par défaut
    Bonjour, juste pour info la signature c'est le nom de la méthode et ses parametre donc le type de retourne le compilo ne le voit pas... L'erreur peut peut etre s expiquer comme ca.
    "vaste programme"

  5. #5
    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,


    Citation Envoyé par FreshVic
    Ce n'est donc pas possible !
    Pourtant je dirais que la situation pourrait arrivé !!
    Si cela arrive il y a de forte chance qu'il y ait un probleme de conception...



    Par contre cela doit toutefois être possible dans certain cas avec Java 5.0 avec la covariance du type de retour lorsqu'il y a une relation d'héritage entre les deux types de retour...

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public interface TestInterface {
     
       public Number getTest();
    }
     
    public interface TestAutreInterface {
     
       public Integer getTest();
     
    }

    La classe suivante "devrait" compiler (je n'ai pas de JDK sur ce poste je n'ai donc pas pu le vérifier):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public class MaClasse implements TestInterface, TestAutreInterface {
     
    	public Integer getTest() {
    		return new Integer(0);
    	}
    }
    a++

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    509
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 509
    Points : 568
    Points
    568
    Par défaut
    Si cela arrive il y a de forte chance qu'il y ait un probleme de conception...
    Je te l'accorde mais parfois l'utilisation d'api impose l'implementation d'interface , alors si l'utilisation de deux API externe s'impose et que par malchance on se retrouve dans ce cas !!!

    Citation Envoyé par BainE
    Bonjour, juste pour info la signature c'est le nom de la méthode et ses parametre donc le type de retourne le compilo ne le voit pas... L'erreur peut peut etre s expiquer comme ca.
    C'est exactement ca , mais justement ma question etait de savoir s'il etait possible de contourner le probleme !!

    En ce qui concerne Java 5 ,j'essairais de retenir cette possibilité qu'offre Java 5 mais pour le moment je suis toujours en 1.4 (et ouais je suis fidele) !!!

    UML avec VIOLET

  7. #7
    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 FreshVic
    Je te l'accorde mais parfois l'utilisation d'api impose l'implementation d'interface , alors si l'utilisation de deux API externe s'impose et que par malchance on se retrouve dans ce cas !!!
    Oui mais dans ce cas il est peut-être préférable de faire deux classes afin de bien avoir deux méthodes distinctes (a la rigueur un classe interne). Car s'il s'agit de deux API différentes il y a de fortes chances que les deux méthodes ait un comportement/objetifs différents...


    Citation Envoyé par FreshVic
    En ce qui concerne Java 5 ,j'essairais de retenir cette possibilité qu'offre Java 5 mais pour le moment je suis toujours en 1.4 (et ouais je suis fidele) !!!
    Attention je ne l'ai toutefois pas testé comme cela donc ce n'est pas sur que cela "fonctionne"...
    Mais ce n'est pas vraiment l'objetifs original de cette fonctionnalité qui permet seulement de spécialiser le type de retour...

    a++

  8. #8
    Gfx
    Gfx est déconnecté
    Expert éminent
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Points : 8 178
    Points
    8 178
    Par défaut
    Il me semble que la covariance ne change que pour les methodes heritees/surchargees mais pas deux methodes au meme niveau d'heritage.

    Et passez a Java 1.5 ! Plus rapide, mieux, etc. ! Java 1.6 arrive bientot (et il est encore mieux
    Romain Guy
    Android - Mon livre - Mon blog

  9. #9
    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 Gfx
    Il me semble que la covariance ne change que pour les methodes heritees/surchargees mais pas deux methodes au meme niveau d'heritage.
    Je viens de tester et cela fonctionne... Avec la covariance public Integer getTest() peut correspondre à une implémentation de public Number getTest(), donc c'est "presque" comme si les deux interfaces possédaient la même méthode...

    Mais bon ce n'est pas forcément très propre comme conception...

    Citation Envoyé par Gfx
    Et passez a Java 1.5 ! Plus rapide, mieux, etc. ! Java 1.6 arrive bientot (et il est encore mieux
    Oui on sait bien... mais on n'en a pas forcément la possibilité

    a++

  10. #10
    Rédacteur
    Avatar de lunatix
    Homme Profil pro
    Architecte technique
    Inscrit en
    Novembre 2002
    Messages
    1 960
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 960
    Points : 3 736
    Points
    3 736
    Par défaut
    Citation Envoyé par Gfx
    Et passez a Java 1.5 ! Plus rapide, mieux, etc. ! Java 1.6 arrive bientot (et il est encore mieux
    je pousse tres fort au boulot pour passer a java5. les postes de dev sont en 1.5, mais on compile pour 1.4 mais j'ai espoir. Par contre on a un gros probleme avec les sockets: elles sont tres lentes pour etablir les connexions. : du coup, ca impacte les connexions Jdbc :-/

  11. #11
    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 lunatix
    Par contre on a un gros probleme avec les sockets: elles sont tres lentes pour etablir les connexions.
    C'est à dire ? Avec le 1.4 ou le 5.0 ?

  12. #12
    Rédacteur
    Avatar de lunatix
    Homme Profil pro
    Architecte technique
    Inscrit en
    Novembre 2002
    Messages
    1 960
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 960
    Points : 3 736
    Points
    3 736
    Par défaut
    avec le 1.5. d'ailleurs la question est passée ici plusieurs fois, et est restée dans réponse. c'est franchement bloquant pour moi. Mon driver oracle mets 10 secondes a se connecter en 1.5, alors que le meme en 1.4 : c'est instantané.

    Edit :
    voir par exemple, mais il y en a d'autres http://www.developpez.net/forums/vie...355963&start=0

  13. #13
    Gfx
    Gfx est déconnecté
    Expert éminent
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Points : 8 178
    Points
    8 178
    Par défaut
    Vous etes les seuls a constater ca ?
    Romain Guy
    Android - Mon livre - Mon blog

  14. #14
    Rédacteur
    Avatar de lunatix
    Homme Profil pro
    Architecte technique
    Inscrit en
    Novembre 2002
    Messages
    1 960
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 960
    Points : 3 736
    Points
    3 736
    Par défaut
    ben c'est pas facile a isoler
    mais par exemple la : http://www.developpez.net/forums/viewtopic.php?t=416541 c'est typique du probleme

    je pense que celui la aussi http://www.developpez.net/forums/vie...hlight=lenteur mais pas sur sur.

    et une des fois ou j'ai vraiment cherché sans trouver de solution
    http://www.developpez.net/forums/vie...ight=pool+lent

    en tout cas, il y a un probleme. Est-ce un bug ? un probleme de conf réseau (ca ressemble a un delai de time out avant chaque ouverture de connexion) : aucune idée[/url]

  15. #15
    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 lunatix
    Edit :
    voir par exemple, mais il y en a d'autres http://www.developpez.net/forums/vie...355963&start=0
    J'ai fait remonter ce thread. Tiens moi au courant

  16. #16
    Gfx
    Gfx est déconnecté
    Expert éminent
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Points : 8 178
    Points
    8 178
    Par défaut
    J'utilise Java 1.5 depuis les premieres beta publiques et les nightly builds Java 1.6 depuis le mois de mai 2005 et je n'ai jamais constate de tels problemes avec toutes les applis Java que j'ai pu essayer.
    Romain Guy
    Android - Mon livre - Mon blog

  17. #17
    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
    Le problème vient de NetBIOS (cf l'autre post), et donc si ce protocole n'est pas installé sur ta machine/réseau cela doit être normal...

    Surtout que ce n'est pas un protocole très utilisé si je ne me trompe pas...

    a++

Discussions similaires

  1. Réponses: 3
    Dernier message: 21/04/2008, 10h29
  2. Question : Interface graphique et MouseListener
    Par SoLune dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 10/08/2007, 01h25
  3. Réponses: 7
    Dernier message: 16/07/2007, 09h59
  4. Réponses: 4
    Dernier message: 02/05/2007, 13h40
  5. [Language]La notion d'interface
    Par clem_alain dans le forum Langage
    Réponses: 5
    Dernier message: 28/12/2005, 11h44

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