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 :

[Collection] type paramétré


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Avatar de GLDavid
    Homme Profil pro
    Head of Service Delivery
    Inscrit en
    Janvier 2003
    Messages
    2 892
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Head of Service Delivery
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 892
    Par défaut [Collection] type paramétré
    Bonjour

    J'ai un warning dont je souhaite me débarasser dans mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Collection<PPath>list = this.selectionEventHandler.getSelection();
    La méthode getSelection me retourne une collection que je veux paramétrer en objet PPath. Mais c'est insuffisant et j'ai un warning :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Type safety: The expression of type Collection needs unchecked conversion to conform to Collection<PPath>
    Sans doute un manque de connaissance du langage pour java 1.5.
    Quelqu'un peut-il éclairer ma lanterne ?

    Merci d'avance.

    @++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code :tagcode: ni le tag :resolu:

    Je ne répond à aucune question technique par MP.

  2. #2
    Membre éprouvé
    Avatar de mavina
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    1 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 812
    Par défaut
    Salut,

    getSelection te renvoie un objet de type Collection<PPath> ou Collection ?
    Car si c'est juste Collection c'est logique qu'il te renvoie un warning

    bien à toi

    mavina

  3. #3
    Membre expérimenté
    Avatar de GLDavid
    Homme Profil pro
    Head of Service Delivery
    Inscrit en
    Janvier 2003
    Messages
    2 892
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Head of Service Delivery
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 892
    Par défaut
    Hello Mavina

    En fait getSelection me renvoit une Collection. Ni plus ni moins.
    Quelle est alors la meilleure solution ?

    @++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code :tagcode: ni le tag :resolu:

    Je ne répond à aucune question technique par MP.

  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,


    Tu as ce warning car la méthode getSelection() doit renvoyer une Collection non typé. Du coup le compilateur ne peut pas t'assurer que ce code est sécurisé puisque la collection retourné peut contenir autre chose que des objet PPath...


    Tu as deux solutions :
    • Laisser ce warning tel quel...
    • L'ignorer avec @SuppressWarnings, à condition d'être sûr que getSelection() renvoit une Collection avec des objets de type PPath seulement (si ce n'est pas le cas tu pourrais obtenir des ClassCastException un peu "bizarre").
    Je te conseille toutefois de limiter au maximum l'usage de @SuppressWarnings, et d'éviter de l'utiliser pour de grande méthode mais plutôt de faire une méthode spécifique. Par exemple pour "caster" une Collection en Collection<T> :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        @SuppressWarnings("unchecked")
        public static <T> Collection<T> genericsCast(Collection<?> c) {
            return (Collection<T>) c;
        }
    Ce qui te donnerait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Collection<PPath>list = genericsCast( this.selectionEventHandler.getSelection() );
    A utiliser à tes risques et périls bien sûr

    a++

  5. #5
    Membre expérimenté
    Avatar de GLDavid
    Homme Profil pro
    Head of Service Delivery
    Inscrit en
    Janvier 2003
    Messages
    2 892
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Head of Service Delivery
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 892
    Par défaut
    Hello adiGuba

    A mon avis, la librairie que j'utilise (Piccolo 1.2 pour les connaisseurs) ne doit pas être encore passée en java 5.0. Je vais donc utiliser l'annotation @SuppressWarning et faire une requête auprès des auteurs de la libraire pour savoir s'ils comptent faire passer leur libraire en Java 5.0.

    Merci de vos conseils.

    @++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code :tagcode: ni le tag :resolu:

    Je ne répond à aucune question technique par MP.

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 16/01/2007, 11h16
  2. [Débutant]Hibernate et listes de types paramétrés
    Par Nico73 dans le forum Hibernate
    Réponses: 2
    Dernier message: 28/11/2006, 18h57
  3. [Generics] Accéder au type du type paramétré
    Par Beuss dans le forum Langage
    Réponses: 2
    Dernier message: 18/09/2006, 16h09
  4. Eclipse et les types paramètrés
    Par menuge dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 23/06/2006, 12h36
  5. BULK COLLECT ==> TYPE TABLE OF (Cursor Rowtype)
    Par argoet dans le forum Oracle
    Réponses: 5
    Dernier message: 17/05/2005, 16h47

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