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

  1. #1
    Membre actif
    Profil pro
    Gestionnaire de données
    Inscrit en
    mars 2006
    Messages
    342
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestionnaire de données
    Secteur : Service public

    Informations forums :
    Inscription : mars 2006
    Messages : 342
    Points : 237
    Points
    237

    Par défaut [TOS 6.1.1] NullPointerException

    Bonjour,
    Dans un tMap je calcule une variable de sortie en fonction de 2 variables avec la formule :
    row1.c1 == null ? (row1.c2 == null ? null : row1.c2 * 10 ) : (row1.c1 * 100)

    A l'execution je tombe en NullPointerException dès que c1 et c2 sont toutes les 2 non renseignées
    Si je ne mets que row1.c2 == null ? null : row1.c2 * 10 ça passe. Bizarre non ?

    Pb avec les conditions imbriquées ?
    Si je remplace null par 99 ça ne plante pas.

    Merci d'avance

  2. #2
    Membre éprouvé Avatar de supergeoffrey
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    octobre 2010
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Nord (Nord Pas de Calais)

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

    Informations forums :
    Inscription : octobre 2010
    Messages : 608
    Points : 1 255
    Points
    1 255

    Par défaut

    Vérifie si ton champs peut être null dans ton schema
    Pensez à marquer vos tickets comme résolus.
    Pensez aussi aux pour les réponses pertinantes

    Quand une discution est résolue depuis un moment pour revenir dessus, il est mieux d'en crée une nouvelle avec un lien vers l'autre car :
    • Elle sera en haut du forum, elle sera donc plus visible
    • Une discussion résolue, on ne passe pas dessus pour aider, on passe dessus si on a le même problème
    • Tu demandes surement à tes clients de faire le même

  3. #3
    Membre actif
    Profil pro
    Gestionnaire de données
    Inscrit en
    mars 2006
    Messages
    342
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestionnaire de données
    Secteur : Service public

    Informations forums :
    Inscription : mars 2006
    Messages : 342
    Points : 237
    Points
    237

    Par défaut

    C'est bien le cas, sinon row1.c2 == null ? null : row1.c2 * 10 aurait aussi planté.

    C'est un pb Java :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public class Test_cond_ternaire {
    	public static void main(String[] args) {
    		Double c1 = null ;
    		Double c2 = null ;
    		System.out.println(c1 == null ? (c2 == null ? null : c2 *10  ) : c1 * 100 );
    	}
    	}
    donne le même message d'erreur.

  4. #4
    Membre éprouvé Avatar de supergeoffrey
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    octobre 2010
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Nord (Nord Pas de Calais)

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

    Informations forums :
    Inscription : octobre 2010
    Messages : 608
    Points : 1 255
    Points
    1 255

    Par défaut

    Quand je copie ta méthode dans IntelliJ, il me dit :

    Unboxing of '(c2 == null ? null : c2 * 10)' may produce 'java.lang.NullPointerException' less... (Ctrl+F1)
    This inspection analyzes method control and data flow to report possible conditions that are always true or false, expressions whose value is statically proven to be constant, and situations that can lead to nullability contract violations.
    Variables, method parameters and return values marked as @Nullable or @NotNull are treated as nullable (or not-null, respectively) and used during the analysis to check nullability contracts, e.g. report NullPointerException (NPE) errors that might be produced.
    More complex contracts can be defined using @Contract annotation, for example:
    @Contract("_, null -> null") — method returns null if its second argument is null @Contract("_, null -> null; _, !null -> !null") — method returns null if its second argument is null and not-null otherwise @Contract("true -> fail") — a typical assertFalse method which throws an exception if true is passed to it
    The inspection can be configured to use custom @Nullable
    @NotNull annotations (by default the ones from annotations.jar will be used)
    Je ne suis pas capable de te dire pourquoi java plante.


    Cette syntaxe passe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     System.out.println(c1 == null && c2 == null ? null : (c1 == null ? c2 : c1).doubleValue() * (c1 == null ? 10 : 100));
    Pensez à marquer vos tickets comme résolus.
    Pensez aussi aux pour les réponses pertinantes

    Quand une discution est résolue depuis un moment pour revenir dessus, il est mieux d'en crée une nouvelle avec un lien vers l'autre car :
    • Elle sera en haut du forum, elle sera donc plus visible
    • Une discussion résolue, on ne passe pas dessus pour aider, on passe dessus si on a le même problème
    • Tu demandes surement à tes clients de faire le même

Discussions similaires

  1. [JDBC][STATEMENT] NullPointerException
    Par syvid dans le forum JDBC
    Réponses: 2
    Dernier message: 23/03/2005, 00h29
  2. [Débutant]NullPointerException
    Par Crazyblinkgirl dans le forum Langage
    Réponses: 4
    Dernier message: 18/08/2004, 13h58
  3. Réponses: 25
    Dernier message: 09/07/2004, 18h41
  4. Heritage et NullPointerException
    Par Assiobal dans le forum Langage
    Réponses: 6
    Dernier message: 18/06/2004, 16h35
  5. JPanel & getGraphics() : NullPointerException
    Par dingoth dans le forum Composants
    Réponses: 7
    Dernier message: 21/05/2004, 15h56

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