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

Java Discussion :

Enumeration Java Warnings


Sujet :

Java

  1. #1
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    538
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 538
    Points : 262
    Points
    262
    Par défaut Enumeration Java Warnings
    Bonjour,

    j'ai un objet en Java qui me retourne une 'Enumeration', comment s'en servir ?



    Sous Eclipse j'ai systématiquement des warnings, je ne parviens pas à récupérer proprement les données.

    Merci.

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par CliffeCSTL Voir le message
    Bonjour,

    j'ai un objet en Java qui me retourne une 'Enumeration', comment s'en servir ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Vector<String> v = ... // exemple d'objet avec une méthode qui retourne une Enumeration
    for (Enumeration<String> e = v.elements(); e.hasMoreElements();) {
     
       String string = e.nextElement(); // récupération de l'élément
     
    }
    Citation Envoyé par CliffeCSTL Voir le message


    Sous Eclipse j'ai systématiquement des warnings, je ne parviens pas à récupérer proprement les données.

    Merci.
    Montre-nous ton code... et précise-nous quel warning (parce qu'on ne voit pas grand chose sur ta copie d'écran).

    NB : à part avec des vieilles classes qui ont ce type de méthode et pas d'alternative, l'Enumeration n'étant pas super pratique préférer, si elles existent, ses alternatives de type Iterator, ou, mieux, Stream en Java 8.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Membre averti Avatar de Doopeijii
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2012
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Orne (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 215
    Points : 323
    Points
    323
    Par défaut
    Deux solutions pour le warning mais comme l'a dit joel, sans le warning on peut pas savoir donc c'est pifométrique :
    • Ta méthode est dépréciée (je n'y crois pas de trop, mais pourquoi pas)
    • Tu n'as pas typée ton Enumeration (Enumeration<String> ou Enumeration<TonType>, etc)


    Plus d'informations seraient bien venues !
    Un petit n'est pas de trop si le message est utile

    "Vous êtes très nombreux dans votre cas? J'ai jamais pensé que les cons étaient en minorité..."

  4. #4
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    538
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 538
    Points : 262
    Points
    262
    Par défaut
    j'ai le même soucis que ici :

    https://community.oracle.com/thread/1184920

    j'ai corrigé avec le '?', mais ça me plaît moyennement

  5. #5
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Ce n'est pas vraiment la réponse à ma question. Et je ne pense pas qu'il s'agisse vraiment du "même souci" que dans le fil que tu cites, qui parle d'un problème aussi peu précis d'ailleurs que le tiens, mais dont on peut supposer (on est pas là pour faire des suppositions, mais bon.. qu'il s'agit d'un appel à la méthode getParameterNames () de la classe HttpServletRequest sur une très ancienne version de l'API, pour laquelle cette méthode a une signature du type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java.util.Enumeration getParameterNames()
    Alors que sur les API plus récentes on a justement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java.util.Enumeration<java.lang.String> getParameterNames()
    La différence est que dans le second cas, l'Enumeration est paramétrée et on peut écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Enumeration<String> enumeration = request.getParameterNames();
    , alors que dans le premier cas, elle ne l'est pas, et donc on est obligé de caster dans ce qu'on pense que c'est (ou même qu'on est sûr que c'est en ayant consulté doc et/ou source). Mais dans ce dernier cas, le compilateur dit "ouais, toi, tu me dis que c'est de l'Enumeration<String> mais moi je ne peux pas en être sûr, donc je t'alerte sur le fait que ça pourrait planter". Maintenant tu as le choix en laissant le warning, ou en ajoutant une annotation (@SuppressWarnings("unchecked")) pour dire au compilateur "je sais ce que je fais, donc ton alerte, tu peux la supprimer), ou caster en Enumeration<?> qui dit,"bah puisqu'on ne sait pas ce que c'est, alors je dis que c'est une Enumeration de je ne sais pas ce que c'est". Dans l'exemple de la réponse, on précise qu'on peut récupérer les noms de paramètres par la méthode toString() qui existent sur toutes les classes, donc qui marchera mais pour une classe qu'on sait pas ce que c'est.

    Maintenant les questions à se poser :

    • pourquoi tu as une méthode qui te retourne du Enumeration non paramétré ?
    • Pourquoi tu passes par une Enumeration ?


    Pour la première question, la réponse peut-être :

    • L'API utilisée est ancienne
      • Dans ce cas passer par une API plus récente (préférable)
      • Ou, à défaut, utiliser une des solutions précitées
    • La méthode est faite maison dans une classe à toi, ou à un collègue
      • Dans ce cas corriger la méthode pour paramétrer le type (préférable)


    Pour la seconde, si la réponse est "c'est le seul moyen" (sous entendu, je ne peux modifier le code de la méthode qui retourne de l'Enumeration, et je n'ai pas d'autres méthodes pour récupérer ce que je veux), bah lire ci-dessus. Pour toutes autres réponses : utiliser dans ce cas, les alternatives paramétrées, du type Iterator, ou Stream.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  6. #6
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    538
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 538
    Points : 262
    Points
    262
    Par défaut
    Effectivement j'ai pas le choix, ce n'est pas mon code.

    J'essaye de faire au plus propre. Peut-être que le @SuppressWarnings est mieux finalement.

    En tout cas Merci.

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

Discussions similaires

  1. Désactiver des warnings Java
    Par nahouto dans le forum MATLAB
    Réponses: 4
    Dernier message: 14/12/2009, 10h04
  2. warning java.util.list a enlever
    Par opensource dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 29/04/2009, 11h16
  3. crèer une enumeration en java
    Par wagui26 dans le forum Débuter avec Java
    Réponses: 9
    Dernier message: 20/01/2009, 15h10
  4. java vector et warning
    Par robert_trudel dans le forum Général Java
    Réponses: 14
    Dernier message: 04/04/2008, 15h32
  5. enumeration en java
    Par Nayila dans le forum Langage
    Réponses: 28
    Dernier message: 30/01/2008, 12h38

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