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 :

Warning de compilation sur File


Sujet :

Langage Java

  1. #1
    Membre éclairé
    Avatar de bpy1401
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2003
    Messages
    471
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2003
    Messages : 471
    Points : 831
    Points
    831
    Par défaut Warning de compilation sur File
    Bonjour à tous

    j'ai bien peut que se soit une question de débutant.
    j'ai un warning de compilation que je ne comprend pas sur le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
      private String getModuleName(String value) {
        File file = new File(value);
        if (file != null) {
          String fileName = file.getName();
          String moduleName = fileName.replace(".xml", "");
          return moduleName;
        }
        return null;     <-- Warning dead code
      }
    Est ce que cela signifie que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    File file = new File(value);
    ne peut jamais retourner null ?

    pour supprimer ce warning, j'ai remplacer le code par celui ci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    private String getModuleName(String value) {
        try {
          File file = new File(value);
          String fileName = file.getName();
          String moduleName = fileName.replace(".xml", "");
          return moduleName;
        } catch (NullPointerException ex) {
          return null;
        }
      }
    Est ce mieux ?

    Cordialement
    Page sur Developpez : http://pbriand.developpez.com

  2. #2
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

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

    Informations forums :
    Inscription : Avril 2009
    Messages : 540
    Points : 532
    Points
    532
    Par défaut
    Quel est le message du Warning exactement ?

    Pour savoir si new File(value) peut renvoyer null, regarder avec ton éditeur le code le la classe File.

    Sinon, ce que tu peux faire c'est retourner "" si file == null

  3. #3
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Citation Envoyé par bpy1401 Voir le message
    Est ce que cela signifie que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    File file = new File(value);
    ne peut jamais retourner null ?
    Oui. Un constructeur ne peut jamais produire un pointeur null.
    Si quelque chose se passe mal, il peut lancer une exception. Mais s'il ne le fait pas, alors il produit forcément un objet instancié du type du constructeur.

    Citation Envoyé par bpy1401 Voir le message
    pour supprimer ce warning, j'ai remplacer le code par celui ci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    private String getModuleName(String value) {
        try {
          File file = new File(value);
          String fileName = file.getName();
          String moduleName = fileName.replace(".xml", "");
          return moduleName;
        } catch (NullPointerException ex) {
          return null;
        }
      }
    Est ce mieux ?
    Possiblement, mais un NullPointerException ne peut arriver que si value est lui-même null.

    Je verrais plutôt quelque chose comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    private String getModuleName(String value) {
      if(value == null) {
        return null;
      }
      File file = new File(value);
      String fileName = file.getName();
      String moduleName = fileName.replace(".xml", "");
      return moduleName;
    }
    Après, tout dépend quelles vérifications sont à faire, si value contenait un path terminé par un /, par exemple.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre éclairé
    Avatar de bpy1401
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2003
    Messages
    471
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2003
    Messages : 471
    Points : 831
    Points
    831
    Par défaut
    Merci a tous les deux.

    la solution est ici

    Oui. Un constructeur ne peut jamais produire un pointeur null.
    Page sur Developpez : http://pbriand.developpez.com

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 09/01/2013, 15h30
  2. Erreur à la compile sur VC++ 6
    Par norwy dans le forum Développement
    Réponses: 1
    Dernier message: 10/11/2005, 13h51
  3. Delphi 7 update 1 - Erreur de compil sur SQLExpr
    Par RamDevTeam dans le forum Bases de données
    Réponses: 14
    Dernier message: 02/11/2005, 17h44
  4. difference de compilation sur gcc et sur vc++
    Par blaise.laporte dans le forum MFC
    Réponses: 8
    Dernier message: 22/07/2005, 14h08
  5. [Eclipse][Java]Problème de compilation sur CTRL+S
    Par ZeKiD dans le forum Eclipse Java
    Réponses: 5
    Dernier message: 27/05/2004, 11h49

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