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 :

Ajout élément dans une collection générique


Sujet :

Langage Java

  1. #1
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    177
    Points
    106
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 177
    Points : 106
    Par défaut Ajout élément dans une collection générique
    Bonjour,

    Je cherche à ajouter des éléments dans un Set. Mes éléments sont des strings et j'ai un accesseur sur la liste :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    String element = "test";
    Set<?> stops = analyzer.getStopwordSet();
    J'ai du mal à voir comment je peux ajouter element dans mon Set...

  2. #2
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2008
    Messages
    73
    Points
    195
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2008
    Messages : 73
    Points : 195
    Par défaut
    De ce que je lis, il s'agit d'un set d'objets Objects, donc ne devrait pas poser de problème... ?

  3. #3
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Points
    6 887
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Points : 6 887
    Par défaut
    Si car le Set est "taggé" comme dépendant d'aucun type explicite (token '?'). Le compilateur refuse donc de "passer" un type String qui ne sera pas nécessairement compatible.

    Le mieux si le Set n'est pas génériquement typé, c'est de ne pas spécifier le type générique. Exemple : Set set = ...
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

  4. #4
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    177
    Points
    106
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 177
    Points : 106
    Par défaut
    En fait, l'accesseur retourne des Set<?>. Si j'essaie de mettre élément j'ai quelquechose de ce genre là : The method add(capture#3-of ?) in the type Set<capture#3-of ?> is not applicable for the arguments (String)

  5. #5
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Points
    23 190
    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
    Billets dans le blog
    1
    Par défaut
    Salut,


    Le type Set<?> signifie que le type d'élément est inconnu. Donc tu ne peux pas y rajouter des éléments !

    Il faudrait modifier l'accesseur afin de renvoyer le type correct.


    a++

  6. #6
    Membre chevronné
    Inscrit en
    Août 2009
    Messages
    1 073
    Points
    1 806
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 1 073
    Points : 1 806
    Par défaut
    Retourner un Set<?>, c'est vraiment histoire de rendre hyper pénible toute manipulation ...

    Tu n'as guère d'autre choix que de caster vers un Set d'objets (ou de String si tu es sûr qu'il n'y a bien que des String) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Set<?> setOrigine = maMéthodeHorrible();
    Set<Object> setUtilisable = (Set<Object>) setOrigine;
    // et tu peux utiliser ton set
    Edit par rapport à AdiGuba : effectivement, s'il a la main sur la méthode appelée, la changer pour avoir en sortie le bon type serait le plus idoine !

  7. #7
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    177
    Points
    106
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 177
    Points : 106
    Par défaut
    Merci pour vos réponses

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. ajout d'un nouvel élément dans une collection
    Par sasuma dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 04/05/2008, 19h15
  2. Ajout éléments dans une zone de liste
    Par tabtab dans le forum IHM
    Réponses: 15
    Dernier message: 01/10/2007, 09h39
  3. Réponses: 2
    Dernier message: 20/04/2007, 02h09
  4. Recheche d'un élément dans une collection
    Par pegase06 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 08/01/2007, 16h30
  5. ajout éléments dans une balise select
    Par wehtam dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 18/08/2005, 15h03

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