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 :

retourner un tableau avec un taille variable dans une classe


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2015
    Messages : 17
    Par défaut retourner un tableau avec un taille variable dans une classe
    Bonjour, je viens de débuter en java et en programmation orienté objet.
    Je me retrouve face à un problème de type "java.lang.NullPointerException" lorsque je veux retourner un tableau ( matrice_seq1 ) grâce à un accesseur de ma classe. En effet je n'ai pas initialement définit la dimension de mon tableau ce qui cause le problème cependant je ne peux pas faire autrement car la taille de mon tableau varie selon k.
    Voici le code de ma classe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
    public class Matrice_NW {
    	char [][] matrice_seq1;
    	int [][] matrice_align1;
     
    	public Matrice_NW (int k){
    	Input_fasta fasta = new Input_fasta("test.txt");
    	String seq1 = fasta.get_matrice(k,1);
    	String seq2 = fasta.get_matrice(k+1,1);
    	int length_seq1 = fasta.get_matrice(k,1).length();
    	int length_seq2 = fasta.get_matrice(k+1,1).length();	
    	char [][] matrice_seq1 = new char[length_seq2+1][length_seq1+1];
    	int [][] matrice_align1 = new int[length_seq2+1][length_seq1+1];
    	for (int i = 0; i <= length_seq2; i++){
    		for (int j = 0; j <= length_seq1; j++){
    			if (i > 0 && j == 0){
    				matrice_seq1[i][j]=seq2.charAt(i-1);
    			}
    			else if (j > 0 && i == 0){
    				matrice_seq1[i][j]=seq1.charAt(j-1);
    			}
    		}
    	}
    	}
     
    	public char [][] matrice_seq(){	
    		return matrice_seq1;
    	}
     
    	public int [][] matrice_align(){
    		return matrice_align1;
    	}
     
     
    }
    Et voici le code de mon main, c'est à ce niveau la que le problème survient, il m'est impossible de retourner un élément de mon tableau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    public class main {
    	public static void main(String[] args){
    	Matrice_NW m = new Matrice_NW(0);
    	char [][] matr = m.matrice_seq();
    	System.out.println(matr[0][1]);
    	}	
    }
    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 : 55
    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
    Billets dans le blog
    2
    Par défaut
    Salut,

    Le problème est simplement que tu créés de nouvelles variables matrice_seq1 et matrice_align1, locales au constructeur de ta classe : ainsi les variables membres restent à null.

    Il te suffit de faire dans ton constructeur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    matrice_seq1 = new char[length_seq2+1][length_seq1+1];
    matrice_align1 = new int[length_seq2+1][length_seq1+1];
    Ainsi on affecte bien aux variables de la classe des valeurs au lieu de créer de nouvelles variables (qui n'ont rien à voir, même si elles ont le même nom).
    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
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2015
    Messages : 17
    Par défaut
    Bien sur!!!! un grand merciii

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

Discussions similaires

  1. [AC-2007] Tableau de taille variable dans une feuille d'état
    Par spawny161184 dans le forum VBA Access
    Réponses: 3
    Dernier message: 14/11/2011, 11h29
  2. [AC-2007] Tableau de taille variable dans une feuille d'état
    Par spawny161184 dans le forum IHM
    Réponses: 0
    Dernier message: 08/11/2011, 08h55
  3. Rentrer une selection de taille variable dans une liste d'un userform
    Par Bubale dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 14/05/2008, 18h59
  4. Ajout d'une variable dans une class fait planter
    Par Geoff-sk8 dans le forum C++
    Réponses: 4
    Dernier message: 11/10/2006, 14h27
  5. Réponses: 2
    Dernier message: 17/12/2005, 20h52

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