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

Collection et Stream Java Discussion :

[AIDE] Pb Init Tableau


Sujet :

Collection et Stream Java

  1. #1
    Membre éclairé Avatar de Diablo_22
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2005
    Messages
    498
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2005
    Messages : 498
    Par défaut [AIDE] Pb Init Tableau
    Bonjour,
    j'ai declare un tableau de string que j'initialise a null

    a un moment dans mon code je vérifie ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    ...
    if (tab[3]=="1")
    {
    ...
    }
    Lors de mes test je fais en sorte de ne pas remplir ce tableau donc il est toujours à null mais j'ai une exception lors de mon

    java.lang.NullPointerException

  2. #2
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 253
    Par défaut
    C'est normal, tab est null et tu tentes d'accéder à un de ses items .
    Si tu veux que les éléments de tab soient nuls (et non pas tab lui-même) il te faut faire un truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String[] tab = {null, null, null, null}
    Note au passage la déclaration avec les crochets sur le type et non sur la varaible lors de la déclaration. De mon point de vue, c'est plus clair: je déclare un tableau de String que j'appelle tab
    Ensuite, pour comparer des String, utilise les méthodes equals ou equalsIngnoreCase de String.
    De plus, si les éléments que tu compares peuvent être nuls, il te faut ajouter le test suivant si tu ne veux pas avoir la même NullPointeurException
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if (tab[3] != null && tab[3].equals("1"))
    ...
    A+

  3. #3
    in
    in est déconnecté
    Membre Expert Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Par défaut
    Citation Envoyé par Fifan31
    De plus, si les éléments que tu compares peuvent être nuls, il te faut ajouter le test suivant si tu ne veux pas avoir la même NullPointeurException
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if (tab[3] != null && tab[3].equals("1"))
    ...
    En fait il suffit de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ("1".equals(tab[3]))
    pour éviter le nullpointer ...

  4. #4
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 253
    Par défaut
    En fait il suffit de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ("1".equals(tab[3]))
    pour éviter le nullpointer ...
    C'est vrai mais je n'aime pas trop cette syntaxeUne affaire de goût ...

  5. #5
    Membre éclairé Avatar de Diablo_22
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2005
    Messages
    498
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2005
    Messages : 498
    Par défaut
    nikel, merci pour vos réponses

  6. #6
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 75
    Par défaut
    Moi j'ai un soucis ...

    Je fait une vérification comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if(TabHeures[0][5] != null);
    Et mon problème c'est que même quand TabHeures ne contient pas de valeurs, il entre dans le if...

    J'ai essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if(!"".equals(TabHeures[0][5]))
    Meme résultat...

    Une idée pour comparer le contenu d'un tableau à la valeur vide ?

  7. #7
    in
    in est déconnecté
    Membre Expert Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Par défaut
    Si tu fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.out.println(TabHeures[0][5]);
    ça te donne quoi ?

  8. #8
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 75
    Par défaut
    rien ! il est donc vide ....

  9. #9
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    122
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2007
    Messages : 122
    Par défaut
    Et de quel type devrait-il être (String, int, Integer, Double, Date ...) ?

  10. #10
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 75
    Par défaut
    C'est un tableau de String

  11. #11
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    122
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2007
    Messages : 122
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if(!"".equals(TabHeures[0][5].toString()))
    et avec ça ?

  12. #12
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 75
    Par défaut
    Pareil ...

  13. #13
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    122
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2007
    Messages : 122
    Par défaut
    Est-ce que tu as essayé d'initialiser le champs, en mettant "toto" par exemple, et ensuite tu testes l'égalité ?

  14. #14
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 75
    Par défaut
    Avec toto ca fonctionne...

    Bon ben ok c'est bon, je vais me débrouiller !

    Merci à toi

    Meme si je ne résoult pas le problème directement...

    J'aurais préféré !!! Car ca me gène d'initialiser le tableau à une autre valeur...!

  15. #15
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    122
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2007
    Messages : 122
    Par défaut
    On progresse ^^

    A voir maintenant si le champs était initialisé ou non, s'il est vide comme tout à l'heure, essaies quelque chose du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    System.out.println(TabHeures[0][5]==null)
    Le problème pourrait venir du fait que ton objet est null => pas de valeur, mais tu ne lèves pas d'exception ..

  16. #16
    Membre émérite
    Profil pro
    Inscrit en
    Février 2007
    Messages
    572
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Février 2007
    Messages : 572
    Par défaut
    Je sais pas si c'est une erreur de copier/coller mais
    if(TabHeures[0][5] != null);
    ca parait vachement suspect.

    Si t'ecris quelque chose du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if(TabHeures[0][5] != null);
       System.out.println("if (true)");
    "if (true)" va tout le temps s'afficher.

    Il faut virer le point virgule
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if(TabHeures[0][5] != null) 
       System.out.println("if (true)");

  17. #17
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 75
    Par défaut
    La console me renvoie true

    edit: ouais j'ai vu pour le ";" c'est déjà corrigé

  18. #18
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    122
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2007
    Messages : 122
    Par défaut
    Citation Envoyé par Sanguko
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if(TabHeures[0][5] != null);
       System.out.println("if (true)");
    "if (true)" va tout le temps s'afficher.
    C'est normal, car dans ce cas tu n'es plus dans le if

  19. #19
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 75
    Par défaut
    oui oui, ca j'ai bien compris ! Et ca fait un moment que j'ai enlevé le ";"

  20. #20
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    122
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2007
    Messages : 122
    Par défaut
    Et donc du coup, tu rencontres toujours le problème où c'est résolu, parce que là, moi je m'y perds ^^ lol

    et donc pour en revenir à ton soucis, c'est bien que ton objet est null, ce n'est pas qu'il n'a pas la valeur "vide".. je sais pas si tu vois bien la différence ..

    Et donc pour ton test il te suffit de tester s'il est null ou non comme tu l'as fait et ca devrait marcher ^^

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. AIDE VBA => Conception tableau
    Par manue31 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 23/05/2007, 22h54
  2. Besoin d'aide pour un Tableau
    Par PatBateman dans le forum Struts 1
    Réponses: 3
    Dernier message: 08/02/2007, 15h57
  3. besoin d'aide probleme taille tableau
    Par zhao dans le forum C++
    Réponses: 8
    Dernier message: 28/09/2006, 09h14
  4. petit aide pour un tableau en c
    Par hayam_kin dans le forum C
    Réponses: 20
    Dernier message: 27/03/2006, 10h00

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