OVH Cloud OVH Cloud

String[][] et casting

8 réponses
Avatar
yvon.thoravalNO-SPAM
Je ne pige pas un pb de casting sur une :

String[][] searchStr = { {}, { "wines" }, { "soils" } };

qqpart j'ajoute une de ces string a une ArrayList, et plus tard si je
fais un casting sur la string contenue dans cette ArrayList :

query = query.descend((String) path.get(pathidx));

j'ai droit à un java class cast exception, par contre si je fais :

query = query.descend(path.get(pathidx).toString());

pas d'exception, qu'est-ce que ça veut dire ???

d'autre par sur cette string, si je fais :

System.out.println("path.get("+pathidx+").toString() : " +
path.get(pathidx).toString());

pour voir si j'ai le contenu (vide) de : {} ou "wines" ou "soils"

je n'ai pas la String mais :

path.get(0).toString() : [Ljava.lang.String;@bc6007

comment puis-je vérifier que cette injure "[Ljava.lang.String;@bc6007"
correspond soit à {} ou "wines" ou "soils" ???



--
yt

8 réponses

Avatar
yvon.thoravalNO-SPAM
Yvon Thoraval wrote:

qqpart au lieu de faire myArrayList.add("wines"); je faisais en réalité
:

myArrayList.add({"wines"});

d'où le pb...
--
yt
Avatar
Patrick Ruzand
"Yvon Thoraval" wrote in message
news:1go43er.1bjp7m31mtrvk8N%

Je ne pige pas un pb de casting sur une :

String[][] searchStr = { {}, { "wines" }, { "soils" } };

qqpart j'ajoute une de ces string a une ArrayList, et plus tard si je
fais un casting sur la string contenue dans cette ArrayList :

query = query.descend((String) path.get(pathidx));

j'ai droit à un java class cast exception, par contre si je fais :

query = query.descend(path.get(pathidx).toString());

pas d'exception, qu'est-ce que ça veut dire ???


que ton ArrayList path ne contient pas des instances de String
mais autre chose.

d'autre par sur cette string, si je fais :

System.out.println("path.get("+pathidx+").toString() : " +
path.get(pathidx).toString());

pour voir si j'ai le contenu (vide) de : {} ou "wines" ou "soils"

je n'ai pas la String mais :

path.get(0).toString() : [Ljava.lang.String;@bc6007


oui. C'est ce que je te disais. tu n'as pas une String, car ta
variable path ne contient pas des String, mais des tableaux
de String (le '[' devant indique que c'est un tableau).

Donc pour resumer, ta List path contient des tableaux de
String, et non des String comme tu le penses.

--
Patrick

Avatar
yvon.thoravalNO-SPAM
Patrick Ruzand wrote:


Donc pour resumer, ta List path contient des tableaux de
String, et non des String comme tu le penses.


oui, oui, merci beaucoup je me suis planté (joyeusement)))
au lieu de faire (grosso-modo) :

myArrayList.add("myString");

j'ai fait :

myArrayList.add({"myString"});

ce qui, effectivement, n'est pas tout-à-fait la même chose...

malheureusement éclipse n'est pas assez évolué, il ne sait pas corriger
mes - nombreuses - étourderies )))
--
yt

Avatar
Vincent Cantin
je n'ai pas la String mais :

path.get(0).toString() : [Ljava.lang.String;@bc6007


oui. C'est ce que je te disais. tu n'as pas une String, car ta
variable path ne contient pas des String, mais des tableaux
de String (le '[' devant indique que c'est un tableau).


C'est "[L" type-du-tableau ";" qui delimite un tableau.


Avatar
Patrick Ruzand
"Vincent Cantin" wrote in message
news:
je n'ai pas la String mais :

path.get(0).toString() : [Ljava.lang.String;@bc6007


oui. C'est ce que je te disais. tu n'as pas une String, car ta
variable path ne contient pas des String, mais des tableaux
de String (le '[' devant indique que c'est un tableau).


C'est "[L" type-du-tableau ";" qui delimite un tableau.



je ne sais pas ce que tu entends par la delimitation du tableau.
Ce qui est sur, c'est que seul [ indique que c'est un tableau.
Ljava.lang.String; indique, lui, le type des objets.

Voila pourquoi je disais que '[' indique que c'est un tableau.

http://java.sun.com/docs/books/vmspec/2nd-edition/html/ClassFile.doc.html#84645

--
Patrick



Avatar
yvon.thoravalNO-SPAM
Vincent Cantin wrote:


C'est "[L" type-du-tableau ";" qui delimite un tableau.


Y a t'il un "Champolion" qqpart qui a décripté ces hiéroglyphes ?
--
yt

Avatar
Patrick Ruzand
"Yvon Thoraval" wrote in message
news:1go5qnm.e2d16utwdsaoN%
Vincent Cantin wrote:


C'est "[L" type-du-tableau ";" qui delimite un tableau.


Y a t'il un "Champolion" qqpart qui a décripté ces hiéroglyphes ?


tu as l'explication dans l'URL que j'ai donne dans mon message precedent.

http://java.sun.com/docs/books/vmspec/2nd-edition/html/ClassFile.doc.html#84645


--
Patrick
Pour m'ecrire:http://cerbermail.com/?JgXjOi1b7j


Avatar
yvon.thoravalNO-SPAM
Patrick Ruzand wrote:

tu as l'explication dans l'URL que j'ai donne dans mon message precedent.


oui, oui, merci, je l'ai lue et enregistrée...
--
yt