Méthode toString() pas appelée
Bonjour,
Je rencontre quelques soucis dans le développement de mon programme.
PS : Les noms de classe sont inventés .
Voici la classe CasePion
Code:
1 2 3 4 5 6 7 8 9 10 11
| public class CasePion extends Observable implements controler.ICasePion
{
private enum State
{
/* ... */
private static final String[] STRINGS = new String[] { "*", "-", foo, foo };
@Override public String toString() { return STRINGS[this.ordinal()]; }
}
/* ......... */
} |
Et voici ma classe EchecCase imaginons :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| public class EchecCase
{
/* Quelques attributes */
@Override public String toString() {
final String tabu = "\t";
String string = new String(tabu);
for(int i=0; i < DIM; i++)
for(int j=0; j< DIM; j++)
string+= casepion(i, j).toString() +...
return string;
} |
Donc c est la ligne [code] s+= casepion(i, j).toString() +.. qui m'a l'air de poser soucis.
En remplaçant le casepion(i, j).toString() par "*", ça m'affiche bien un tableau contenant les étoiles, par contre on mettant casepion(i, j).toString(), la fonction toString devant retourné un/des éléments du tableau STRINGS n'est pas du tout appelée ..
J'ai des résultats bizarre du style
Code:
1 2
| [java] modele.CasePion@a62b39f modele. modele.casePion@55fe910c modele.CasePion@3be4d6ef modele.CasePion@2cdb03a1 modele.CasePion@5ecb5608 modele.CasePion@777d57d6 et
[java] etc .. pour tout les éléments du damier ( à la place des * , - .. ) |
Apparemment la méthode toString() renvoie le nom de la classe suivie de son adresse..
Du coup un indice là-dessus ?
Quels pourraient être les problèmes à ce non appel ?
Merci