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 :

generique : pb de compilation


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé

    Profil pro
    Inscrit en
    Juin 2006
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 106
    Par défaut generique : pb de compilation
    Bonjour

    Je débute avec les génériques sous Java et j'ai du mal à trouver la parade pour que cela compile

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
     
    import java.util.*;
     
    class ApplicationObject
    {
      public ApplicationObject[] getChilds() { .... }
     
      public <T extends ApplicationObject> void searchChilds(Class<? extends T> classe, Set<T> resultSet)
      {
        ApplicationObject[] childs = getChilds();
        for(int i=0, n=childs.length; i<n; i++)
        {
          .......
          if (classe == childs[i].getClass())
            resultSet.add((T) childs[i]); // warning
        }
      }
     
      public Set<Model> searchModels()
      {
        Set<Model> modelsSet = new HashSet<Model>();
        searchChilds(Model.class, modelsSet);
        searchChilds(EvaluatedModel.class, modelsSet);
        return modelsSet;
      }
     
      public Set<Label> searchLabels()
      {
        Set<Label> labelsSet = new HashSet<Label>();
        searchChilds(Label.class, labelsSet);
        return labelsSet;
      }
    }
     
    class Label extends ApplicationObject
    {
    }
     
    class Model extends ApplicationObject
    {
    }
    class EvaluatedModel extends Model
    {
    }

    Merci


    finalement j'ai reussi à compiler mais j'ai un warning avec eclipse, y a t-il une autre solution

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    548
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 548
    Par défaut
    Mets le curseur sur l'endroit où il y a le warning et Ctrl + shift + 1

  3. #3
    Membre confirmé

    Profil pro
    Inscrit en
    Juin 2006
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 106
    Par défaut
    Merci mais lle fait qu'eclipse ait rajouté le @SuppressWarnings("unchecked") n'implique t-il pas un pb de conception de la méthode?

  4. #4
    Expert éminent
    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
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par st20085
    Merci mais lle fait qu'eclipse ait rajouté le @SuppressWarnings("unchecked") n'implique t-il pas un pb de conception de la méthode?
    Pas forcément : le warning indique un danger potentiel car tu utilises les Generics de manière "dangereuse". C'est à dire que le compilateur ne peut pas vérifier la concordance des types et que cela sera fait à l'exécution (avec potentiellement une ClassCastException).
    L'annotation @SuppressWarnings permet d'indiquer que tu gères toi même la concordance des types (avec les risques que cela comporte).


    Maintenant pour savoir cela plus en détail par rapport à ton cas, il faudrait connaitre le warning et la ligne correspondante...

    a++

Discussions similaires

  1. Réponses: 15
    Dernier message: 10/10/2002, 19h19
  2. [Installation] Borland Compiler 5.5 sous XP
    Par Ligey dans le forum Autres éditeurs
    Réponses: 16
    Dernier message: 28/09/2002, 22h45
  3. dans le fond, la compilation...
    Par deltapositive dans le forum C++Builder
    Réponses: 5
    Dernier message: 17/09/2002, 12h14
  4. Vitesse de compilation
    Par srvremi dans le forum C++Builder
    Réponses: 5
    Dernier message: 30/07/2002, 16h49
  5. Réponses: 1
    Dernier message: 27/05/2002, 01h44

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