Groups | Search | Server Info | Keyboard shortcuts | Login | Register


Groups > fr.comp.lang.java > #1825

Re: problème avec un tableau d'objets null

From Yliur <yliur@free.fr>
Newsgroups fr.comp.lang.java
Subject Re: problème avec un tableau d'objets null
Date 2021-06-02 16:51 +0000
Organization A noiseless patient Spider
Message-ID <s98ctq$gqi$1@dont-email.me> (permalink)
References <PuudnX8XGuRJkCv9nZ2dnUU7983NnZ2d@giganews.com>

Show all headers | View raw


Le Tue, 01 Jun 2021 05:37:08 -0500, eliereve a écrit :

> Bonjour, j'ai un problème avec un jeux de patience que j'essaie de coder
> en java. Au début, j'ai créé une classe Deck_dealer qui hérite d'une
> classe mère Deck qui construit un paquet à partir d'une ArrayList
> d'objets Card qui est une autre classe que j'ai créée (chaque carte a
> trois attributs, un teinte, une couleur et une valeur) et ensuite quand
> je configure mon jeux, je crée un tableau d'objets Deck_dealer et
> j'essaie de remplir chaque paquet avec des cartes qui sont instanciées
> et mise dans un autre objet de type Stack qui modélise la pioche. Le
> problème c'est que lorsque j'essaie de créer des tableaux d'objets de
> type Deck_dealer pour mes 7 colonnes et que j'essaie d'instancier 7
> Deck_dealer à travers une double boucle while et lorsque j'essaie de
> remplir chacun des paquets avec une méthode qui ajoute des cartes depuis
> le stack vers le tableau, ça ne marche pas. Le programme plante et me
> met Exception in thread "main" java.lang.IndexOutOfBoundsException:
> Index 0 out of bounds for length 0. Cordialement.
> voici mon code :
> final int pieux_count=4;
> 		final int decks_count=7;
> 		
> 		Pieux [] pieux_4=new Pieux[pieux_count];
>               Deck_dealer [] decks=new Deck_dealer[decks_count];
> 		int i=0;
> 		do {
> 			decks[i]=new Deck_dealer();
> 			int j=0;
> 			do {
> 			    decks[i].deck.get(j).add_card(deck_dealer,j);
> 			    deck_dealer.remove_card(j);
> 			    j++;
> 			}while(j<i+1);
> 			i++;
> 		}while(i<decks_count);


Dans la pile d'appels tu dois avoir le numéro de la ligne qui pose 
problème, je suppose que c'est celle-ci ?
    decks[i].deck.get(j).add_card(deck_dealer, j);

Le message indique que tu as tenté d'accéder à l'élément 0 (le premier) 
d'une liste de longueur 0 (la liste est vide).

Je pense que le problème est que tu as créé le tableau decks, qu'il 
contient sans doute bien un objet dans l'attribut deck, mais que cet 
objet est sans doute une liste qui est vide. Donc quand tu veux récupérer 
l'élément j de cette liste avec get(j) ça plante. Il faut sans doute 
créer un objet et le placer dans la liste, de la même manière que tu 
remplis le tableau decks au fur et à mesure.

Autre remarque : en java il est plus naturel et plus lisible d'écrire ce 
genre de boucles comme ça :
    for (int i = 0 ; i < decks_count ; i++)
    {
        ...
    }

Back to fr.comp.lang.java | Previous | NextPrevious in thread | Find similar


Thread

problème avec un tableau d'objets null eliereve <nospam_eliereveillaud@gmail.com.invalid> - 2021-06-01 05:37 -0500
  Re: problème avec un tableau d'objets null Yliur <yliur@free.fr> - 2021-06-02 16:51 +0000

csiph-web