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 :

[Generics] Comment ne pas avoir le warning unchecked


Sujet :

Langage Java

  1. #1
    Membre expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Points : 3 083
    Points
    3 083
    Par défaut [Generics] Comment ne pas avoir le warning unchecked
    Hello,

    J'ai un petit cas qui me gène avec les générics, j'aimerais savoir s'il y a une solution autre que @SuppressWarnings("unchecked").

    Voilà la classe :

    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
    public class OrFilter<T> implements Filter<T> {
     
    	/** The filters */
    	private Filter<T>[] m_filters;
     
    	/**
             * Builds a filter that must verify at least one of theses filters.
             *
             * @param filters The filters.
             */
    	public OrFilter(Filter<T>... filters) {
    		m_filters = filters;
    	}
     
    	// ...
     
    }
    Le générique dans le constructeur avec le varargs me cause un warning :
    Citation Envoyé par warning
    A generic array of Filter<PlTache> is created for a varargs parameter
    quand je fais ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    		Filtrable<PlTache> filtrable = new Filtrable<PlTache>(tachesSource);
    		filtrable.addFilter(
    				new OrFilter<PlTache>(
    						new TacheOverlapingIntervalFilter<PlTache>(iv),
    						new TacheFlottanteFilter<PlTache>()));
    N'ais-je pas d'autre choix que de passer mon varargs en Collection<T> ? Je trouvais ça commode...

    Merci

  2. #2
    Membre chevronné

    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Novembre 2006
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 252
    Points : 1 954
    Points
    1 954
    Par défaut
    Non, en tout cas pas sans y laisser quelques plumes. Le pb vient de la gestion des tableaux génériques (lire: http://www.angelikalanger.com/Generi...erized%20type?)

    Ainsi, tu n'as que deux solutions: soit tu relâche le typage dans l'argument filters en le déclarant Filter<?>, soit tu n'utilise pas l'ellipse mais une collection.

  3. #3
    Membre expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Points : 3 083
    Points
    3 083
    Par défaut
    Ok, merci pour le lien, je vais mettre une collection alors, ça permet de garder le contrôle de typage.

    EDIT: Non en fait je vais mettre le joker car à coder c'est plus simple, au développeur de faire gaffe...

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

Discussions similaires

  1. Comment ne pas avoir du tout de journaux de transaction ?
    Par Valky dans le forum Administration
    Réponses: 2
    Dernier message: 16/06/2010, 13h02
  2. Instal comment ne pas avoir "éditeur inconnu" ?
    Par Ehjoe dans le forum VB.NET
    Réponses: 2
    Dernier message: 27/11/2009, 11h38
  3. [XL-2000] Comment ne pas avoir de bug en ne voulant pas enregistrer un fichier déjà existant
    Par Avinetor dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 05/06/2009, 17h40
  4. Réponses: 2
    Dernier message: 14/11/2008, 18h31
  5. Réponses: 8
    Dernier message: 27/10/2006, 14h36

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