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 :

Appel Variable statique dans une autre classe ?


Sujet :

Langage Java

  1. #1
    Candidat au Club
    Inscrit en
    Janvier 2013
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Janvier 2013
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Appel Variable statique dans une autre classe ?
    Bonjour,

    J'ai déclarée un tableau[][] static de type String. Dans la classe courante, il est initialiser et rempli de valeurs.
    Quand je veux l'utiliser dans une autre classe, les valeurs deviennent null !!

    Il y a t-il une explication pour cela ?? comment je peux extraire les valeurs de la première classe ?

    Merci.

  2. #2
    Membre éprouvé Avatar de Jidefix
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    742
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Septembre 2006
    Messages : 742
    Points : 1 154
    Points
    1 154
    Par défaut
    Bonjour,
    le mieux serait de nous recopier le code qui pose problème.
    Il faudrait voir comment est initialisé le tableau dans la première classe, et comment la seconde essaye d'y accéder.
    Veuillez agréer nos sentiments les plus distingués. Soyez assurés de notre entière collaboration, bien à vous pour toujours et à jamais dans l'unique but de servir l'espérance de votre satisfaction, dis bonjour à ton père et à ta mère, bonne pétanque, mets ton écharpe fais froid dehors.

  3. #3
    Candidat au Club
    Inscrit en
    Janvier 2013
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Janvier 2013
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Le code est assez long pour le recopier. Voici des morceaux du code:
    Dans la classe principale (ApprochedetectionInteret):
    Declaration du tableau:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public static String[][] TagInterest=new String [300000][2]; //tableau
    Remplissage:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    do{TagInterest[f][0]=newInterest1[i11][0]; 
    TagInterest[f][1]=newInterest1[i11][1]+":: "+ tags3[j1][1]; 												System.out.println("f="+f+" / "+TagInterest[f][0]+"::"+TagInterest[f][1]);
    f++;
    }while (i11==newInterest1.length);

    Remarque: l'affichage est juste dans cette classe.
    Dans la classe appelant la classe principale, j'ai voulue juste afficher les cases du tableau:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.out.println("b="+b+" / "+ApprochedetectionInteret.TagInterest[b][0]+"::"+ApprochedetectionInteret.TagInterest[b][1]);
    Et les cases sont "null" !

  4. #4
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 075
    Points : 7 981
    Points
    7 981
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public static String[][] TagInterest=new String [300000][2]; //tableau
    Tu as alloué un tableau, mais après tu n'as rien mis dans le tableau d'ou un null.

    Comme dans cet exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    String datas [][] = new String[10][10]; // Alloue un tableau mais qui sera remplis de null.
    System.err.println(""+datas[0][0]); // la preuve, tu verras NULL
    datas[0][0] = "Toto"; // assigne un valeur dans le tableau pour ne plus avoir null.
    System.err.println(""+datas[0][0]); // La tu verras TOTO et tu n'auras plus le null
    Donc ton remplissage doit avoir un souci quelques part.
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Candidat au Club
    Inscrit en
    Janvier 2013
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Janvier 2013
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Le remplissage est effectué selon ce code que j'ai déjà mis au premier post:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    do{TagInterest[f][0]=newInterest1[i11][0]; 
    TagInterest[f][1]=newInterest1[i11][1]+":: "+ tags3[j1][1]; 												System.out.println("f="+f+" / "+TagInterest[f][0]+"::"+TagInterest[f][1]);
    f++;
    }while (i11==newInterest1.length);
    L'affichage du tableau, est correcte dans cette classe.

    Puisque le tableau est une variable statique, normalement on accède aux derniers modifications --> on accède a un tableau déjà rempli.

    N'est ce pas ?

  6. #6
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Pourquoi un tableau statique (question primordiale)

    Le code d'initialisation, tu l'appelle comment?

    Le code qui utilise ton tableau, il ressemble à quoi?

    Désolé, mais avec les bribes de codes que tu nous donne, ça ou rien c'est la même chose.

  7. #7
    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 noula_27 Voir le message
    Le code est assez long pour le recopier.
    Du coup ce qui serait bien ce serait de d'abord le raccourcir. Genre une quinzaine de lignes.

    Puis ensuite, de nous le montrer entièrement.

    Je vois assez mal pourquoi l'utilisation d'une variable statique entre plusieurs classes devrait forcément faire plus de 15 lignes
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. Variable introuvable dans une autre classe
    Par Anduriel dans le forum Débuter avec Java
    Réponses: 1
    Dernier message: 02/12/2011, 16h46
  2. Appeler un tableau dans une autre classe
    Par jasinski13 dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 28/05/2011, 14h43
  3. Réponses: 3
    Dernier message: 14/09/2010, 10h14
  4. Appel membre static dans une autre classe
    Par cyriltec dans le forum C#
    Réponses: 2
    Dernier message: 12/04/2010, 11h23
  5. Probleme appel de fct dans une autre classe
    Par crakotte_finance dans le forum C++
    Réponses: 6
    Dernier message: 09/10/2006, 21h22

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