Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1546 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  switch (autrechose_que_du_int)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

switch (autrechose_que_du_int)

n°873159
meumeul
Stay Heavy
Posté le 14-10-2004 à 15:01:21  profilanswer
 

le switch marche que avec des int ou des char ?
 
mon code marche pas, il me dit string trouvé, et int attendu...
 
 

Code :
  1. String[] parsedLine = line.split(" " );
  2.     switch (parsedLine[0]) {
  3.         case "@RELATION":
  4.            //mmmm
  5.         case "@ATTRIBUTE":
  6.            //qsazd
  7.         case "@DATA":
  8.            //asd
  9.         default:
  10.            // mùù
  11.              }


 
 
Merci !
 
edit : en meme temps c logique que ca marche pas, ca  
doit comparer les adresses la. Y'a pas une astuce qui
fait des equals(..) de la classe switchée?


Message édité par meumeul le 14-10-2004 à 15:03:36
mood
Publicité
Posté le 14-10-2004 à 15:01:21  profilanswer
 

n°873164
Taz
bisounours-codeur
Posté le 14-10-2004 à 15:05:04  profilanswer
 

une table de hachage ça peut servir des fois.

n°873172
nraynaud
lol
Posté le 14-10-2004 à 15:12:02  profilanswer
 

meul> non, y'a pas d'astuce, tu fais une table de hashage ou des if, comme Taz te dit.


---------------
trainoo.com, c'est fini
n°873174
Jubijub
Parce que je le VD bien
Posté le 14-10-2004 à 15:12:35  profilanswer
 

et lire la javadoc aussi ...Switch marque avec des int ...


---------------
Jubi Photos : Flickr - 500px
n°873177
benou
Posté le 14-10-2004 à 15:12:51  profilanswer
 

pour info, le switch marche avec des enums en java1.5 ...

n°873185
Taz
bisounours-codeur
Posté le 14-10-2004 à 15:16:14  profilanswer
 

j'ai pas testé la jvm1.5, mais est-ce que c'est pas tout simplement par les les enum sont convertibles en int tout simplement ?

n°873186
meumeul
Stay Heavy
Posté le 14-10-2004 à 15:16:16  profilanswer
 

ben voila l'astuce que j'attendais benou.
merci.
et merci aussi aux autres

n°873189
benou
Posté le 14-10-2004 à 15:17:22  profilanswer
 

Taz a écrit :

est-ce que c'est pas tout simplement par les les enum sont convertibles en int tout simplement ?


non, je pense pas ... c'est des objets ...

n°873193
nraynaud
lol
Posté le 14-10-2004 à 15:19:56  profilanswer
 

Jubi > au lieu de dire que la spec du langage est dans les javadocs, il est fait ce visiteur ?


---------------
trainoo.com, c'est fini
n°873194
nraynaud
lol
Posté le 14-10-2004 à 15:21:42  profilanswer
 

Taz a écrit :

j'ai pas testé la jvm1.5, mais est-ce que c'est pas tout simplement par les les enum sont convertibles en int tout simplement ?

non, c'est réellement des pointeurs, mais on a une réelle garantie (par la spec du langage) que les objets sont uniques en flyweight.
 
alors qu'un enum "bien typé" fait à la main en java, il faut savoir faire ...
 
 
edit : heu pour réellement répondre, si, dans le sens où un pointeur c'est 4 octets et un int aussi.


Message édité par nraynaud le 14-10-2004 à 15:24:18

---------------
trainoo.com, c'est fini
mood
Publicité
Posté le 14-10-2004 à 15:21:42  profilanswer
 

n°873197
Jubijub
Parce que je le VD bien
Posté le 14-10-2004 à 15:26:28  profilanswer
 

nraynaud a écrit :

Jubi > au lieu de dire que la spec du langage est dans les javadocs, il est fait ce visiteur ?


 
c en cours patron


---------------
Jubi Photos : Flickr - 500px
n°873210
julienv
Posté le 14-10-2004 à 15:37:03  profilanswer
 

tu peux utiliser CGLLIB et son StringSwitcher : http://cglib.sourceforge.net/apido [...] tcher.html
 
voila un exemple pris sur le blog du createur :
 

Code :
  1. private static final int FOO = 0, BAR = 1, BAZ = 2;
  2. private static final StringSwitcher SWITCHER =
  3.   StringSwitcher.create(new String[]{ "foo", "bar", "baz" },
  4.                         new int[]{ FOO, BAR, BAZ },
  5.                         true);


 

Code :
  1. public void startElement(String uri, String name, ...) {
  2.   switch (SWITCHER.intValue(name)) {
  3.   case FOO:
  4.      // process foo element
  5.      break;
  6.   case BAR:
  7.      // process bar element
  8.      break;
  9.   case BAZ:
  10.      // etc.
  11.   }
  12. }


n°873218
Taz
bisounours-codeur
Posté le 14-10-2004 à 15:42:59  profilanswer
 

nraynaud a écrit :


edit : heu pour réellement répondre, si, dans le sens où un pointeur c'est 4 octets et un int aussi.

c'est normalisé ça ?
 
vous avez jetez un coup d'oeil aux enum de C# , on peut spécifier le type sous-jacent et y a un attribut spécial pour les enums employés comme des drapeaux bit-à-bit, c'est vraiment très sympa.
 
par contre, je lis la doc de 1.5, le fais de gérer ça comme une vrai classe, ça à l'air terrible

n°873232
nraynaud
lol
Posté le 14-10-2004 à 15:48:36  profilanswer
 

Taz a écrit :

c'est normalisé ça ?
 
vous avez jetez un coup d'oeil aux enum de C# , on peut spécifier le type sous-jacent et y a un attribut spécial pour les enums employés comme des drapeaux bit-à-bit, c'est vraiment très sympa.
 
par contre, je lis la doc de 1.5, le fais de gérer ça comme une vrai classe, ça à l'air terrible

je me souviens plus de C#, il faut que je m'y remette bordel ! je deviens complètement spécialisé.
 
ouais, c'est vraiment des enum biens typés d'avant, mais remontés dans la syntaxe, don y'a des champs et des méthodes dans les valeurs.
 
ça sanctuarise le visiteur implémentation instanceof, mais en version bien typée.


---------------
trainoo.com, c'est fini
n°873277
Taz
bisounours-codeur
Posté le 14-10-2004 à 16:19:45  profilanswer
 

puisqu'on en est a parlé de 1.5, je ne trouve pas de référence sur StringBuilder. est-ce que la spécification a changée de telle sorte de que s = a + b + c + d génère un StringBuilder temporaire ?

n°873283
nraynaud
lol
Posté le 14-10-2004 à 16:23:05  profilanswer
 

Taz > c'est pas une spec, mais un truc décrit comme une "optimisation possible" dans la spec, donc c'est aux fournisseurs de compilos de se démerder.


---------------
trainoo.com, c'est fini
n°873292
Taz
bisounours-codeur
Posté le 14-10-2004 à 16:26:44  profilanswer
 

OK, je viens de dézipper et effectivement, c'est remplacé.
 
edit : par contre au niveau des autres optimisation, y a toujours rien ...


Message édité par Taz le 14-10-2004 à 16:35:13
n°874186
meumeul
Stay Heavy
Posté le 15-10-2004 à 16:16:52  profilanswer
 

bon ben je vais faire une bonne vielle liste de cas :) merci !


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  switch (autrechose_que_du_int)

 

Sujets relatifs
j'comprends pas laaaaaaa..... (switch)Probleme bête avec switch case...[résolu]
[Php] switch($action) -> Pkoi il ne reconnait pas cette variable !!Switch(dir){
Question sur la gestion des cas (case ... switch) en PHPFonction switch qui ne veut pas marcher ...
[PHP] switch avec 'case' multiples?[C] Comment faire un switch sur une chaine de caractère ?
a propos du switch "default"[SNMP] Retouver le switch correspondant à une adresse MAC, assez urgen
Plus de sujets relatifs à : switch (autrechose_que_du_int)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR