Groups | Search | Server Info | Keyboard shortcuts | Login | Register
Groups > fr.comp.lang.java > #1825
| 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> |
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 | Next — Previous in thread | Find similar
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