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

Collection et Stream Java Discussion :

Warning / L'expression du type Vector[] requiert une conversion non contrôlée


Sujet :

Collection et Stream Java

  1. #1
    Membre actif
    Inscrit en
    Août 2007
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 94
    Par défaut Warning / L'expression du type Vector[] requiert une conversion non contrôlée
    Bonjour j'ai l'erreur suivante quand je compile :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    L expression du type Vector[] requiert une conversion non contrôlée en Vector<Lesson>[]
    Cette erreur a lieu quand j'ai le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Vector <Lesson>[] m_tr_lesson;
    ...
    m_tr_lesson = new Vector [5];
    ...
    Quelqu'un peut m'aider à supprimer ce Warning?

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Tout simplement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    m_tr_lesson = new Vector<Lesson> [5]
    Par contre je trouve le concept d'un array de vecteurs curieux, mais bon....

  3. #3
    Membre chevronné
    Profil pro
    Développeur Java
    Inscrit en
    Novembre 2007
    Messages
    301
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2007
    Messages : 301
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    m_tr_lesson = new Vector<Lesson>[5];
    Note: Vector est synchronisé. Il est préférable d'utiliser ArrayList si il n'y a pas de problème d'accès concurrent.

    Note 2: C'est normal que ta structure soit un tableau de Vecteur ?

    EDIT : Grillé...

  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,


    Désolé mais vos réponses ne sont pas valables
    Le warning se transforme en erreur de compilation !!!


    Les Generics ne se marient pas très bien avec les tableaux, en raison des concepts assez différents mis en place, ce qui peut générer des incohérences de typage.

    Je n'ai pas le temps de chercher mais il y a plein de discussions sur le sujet dans le forum.


    Il y a deux solutions :
    1. Utiliser le premier code et un @SupressWarning pour "ignorer" le warning, mais il faut bien avoir conscience des problèmes que cela peut poser.
    2. Mais la meilleure solution est d'utiliser une List<List<T>>, qui te permet d'avoir un code typesafe



    a++

  5. #5
    Membre actif
    Inscrit en
    Août 2007
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 94
    Par défaut
    Citation Envoyé par adiGuba Voir le message
    ...[*]Mais la meilleure solution est d'utiliser une List<List<T>>, qui te permet d'avoir un code typesafe
    ...
    C'est à dire?

  6. #6
    Membre chevronné
    Profil pro
    Développeur Java
    Inscrit en
    Novembre 2007
    Messages
    301
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2007
    Messages : 301
    Par défaut
    Au lieu d'utiliser un tableau de Vector de "Lesson". Tu crées une List de List de "Lesson".

  7. #7
    Membre actif
    Inscrit en
    Août 2007
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 94
    Par défaut
    Citation Envoyé par darkxan Voir le message
    Au lieu d'utiliser un tableau de Vector de "Lesson". Tu crées une List de List de "Lesson".
    y a pas d'autres moyens moins brutaux pour contourner le Waring?

  8. #8
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Zut, j'avais oublié que les tableaux ne supportaient pas les generic

  9. #9
    Membre chevronné
    Profil pro
    Développeur Java
    Inscrit en
    Novembre 2007
    Messages
    301
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2007
    Messages : 301
    Par défaut
    Ca change pas grand chose à ton code. Au lieu de manipuler un tableau, tu manipules une List. Si tu ne veux vraiment pas, essaie en changeant ton code avec ça (je ne pense pas que ça génère de warning, par contre tu es obligé de faire un cast ensuite) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Vector<?>[] m_tr_lesson = new Vector<?>[5];

  10. #10
    Membre éclairé Avatar de fatypunk
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    71
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2007
    Messages : 71
    Par défaut
    Citation Envoyé par chris_wafer Voir le message
    y a pas d'autres moyens moins brutaux pour contourner le Waring?
    Pour moi c'est pas brutal... c'est plus propre ! En plus les tableau c'est vraiment pas drôle à manipuler en regard des List génériques.

Discussions similaires

  1. Réponses: 3
    Dernier message: 14/06/2012, 11h33
  2. chercher un max et min dans une liste de type vector
    Par sandy07 dans le forum Collection et Stream
    Réponses: 11
    Dernier message: 29/05/2007, 15h23
  3. Réponses: 2
    Dernier message: 16/05/2007, 16h13
  4. Type DWord dans une classe non managé
    Par julioMEL dans le forum C++/CLI
    Réponses: 1
    Dernier message: 26/04/2007, 20h08
  5. Objet vector<Type> membre d'une classe
    Par Chewbi dans le forum SL & STL
    Réponses: 3
    Dernier message: 16/02/2006, 17h12

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