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 :

Appel de '.class' sur un type générique


Sujet :

Langage Java

  1. #1
    Candidat au Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Octobre 2011
    Messages : 3
    Points : 4
    Points
    4
    Par défaut Appel de '.class' sur un type générique
    Bonjour,

    J'ai un type générique ModelListener<T> que je voudrais mocker avec EasyMock en spécifiant le type 'T' à 'Guest'.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ModelListener<Guest> mockListener = EasyMock.createStrictMock(ModelListener<Guest>.class);
    Or, il n'est à priori pas possible d'appeler '.class' sur ce genre de classes.

    A savoir que la solution

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ModelListener<Guest> mockListener = EasyMock.createStrictMock(ModelListener.class);
    fonctionne (les tests passent) mais me met le warning "Type safety: The expression of type ModelListener needs unchecked conversion to conform to ModelListener<Guest>"

    Comment puis-je contourner ce problème ?

    Merci

  2. #2
    Membre du Club
    Profil pro
    Architecte logiciel
    Inscrit en
    Janvier 2006
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2006
    Messages : 28
    Points : 48
    Points
    48
    Par défaut
    effectivement, cela ne s'ecrit pas car c'est bien la meme classe : le template est juste de la deco.


    pour resoudre le warning tu peux mettre une annotation tel que :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     @SuppressWarnings("rawtypes")
    ModelListener<Guest> mockListener = EasyMock.createStrictMock(ModelListener.class);

  3. #3
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 567
    Points : 21 635
    Points
    21 635
    Par défaut
    Cela ne résout pas le warning, cela le cache. Ce serait comme éteindre l'alerte d'un incendie et dire qu'on a résolu le problème : le feu est toujours là.

    N'ayant pas l'habitude de EasyMock, je ne sais pas s'il y a une manière prévue de résoudre ça.

Discussions similaires

  1. Cast sur un type générique
    Par debloc dans le forum Débuter avec Java
    Réponses: 7
    Dernier message: 31/10/2012, 22h23
  2. [C#] Problème de Cast sur un type générique
    Par Bobbledople dans le forum C#
    Réponses: 2
    Dernier message: 10/06/2009, 11h04
  3. Récupérer la classe d'un type générique
    Par Asterius dans le forum Langage
    Réponses: 7
    Dernier message: 21/11/2008, 08h45
  4. réflexion sur des types génériques
    Par ziad.shady dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 06/06/2008, 12h25
  5. Réponses: 2
    Dernier message: 09/05/2006, 12h30

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