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

avec Java Discussion :

Les génériques et le super


Sujet :

avec Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Avril 2006
    Messages : 201
    Points : 75
    Points
    75
    Par défaut Les génériques et le super
    Bonsoir à tous,

    Je faisais quelques expérimentations sur les génériques et je suis tombé sur une subtilité que je ne parviens pas à comprendre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    public <X extends IOException> int  maMethode4(X r){
    		return 0 ;
    	}
    cette méthode compile

    mais pas celle ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    public <X super IOException> int  maMethode4(X r){
    		return 0 ;
    	}
    Quelque chose d'évident doit m’échapper ...
    Sauriez vous m'éclairer ?

    merci d'avance
    Bonne soirée

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Le super ne s'utilise pas dans les définitions de type paramétré. Il s'utilise dans les limites de paramètre de type indéfini.

    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    List<? super IOException> troublesList;
    troublesList = new ArrayList<Throwable>();
    ou bien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    private void uneMethode(List<? super IOException> list) {
      list.add(new IOException());
    }
    Bref, ce qu'on voit bien, là, c'est que c'est toujours un ? et pas un X ou autre chose qu'un ?

    Le système de sous-typage aurait peu de sens si on pouvait utiliser super dans les définitions de type paramétré.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. Réponses: 1
    Dernier message: 17/12/2008, 20h24
  2. Les génériques sous Delphi 2007
    Par Laurent Dardenne dans le forum Delphi .NET
    Réponses: 2
    Dernier message: 10/12/2007, 19h39
  3. Problemes avec les génériques
    Par lefait dans le forum Langage
    Réponses: 7
    Dernier message: 15/03/2007, 11h17

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