MessageFormat ça suxx des ours

MessageFormat ça suxx des ours - Java - Programmation

Marsh Posté le 23-09-2002 à 19:23:01    

:ouch:  :ouch:

import java.text.MessageFormat;
 
/**
 *  
 *  
 * @author     --greg--
 * @author     $Author: $ (last edit)
 * @version    $Revision:  $
 * @created    Sep 23, 2002
 */
 
public class TestMessageFormatQuote {
    public static void main(String[] args) {
        String test = "bla'bla{0}bla";
 
        String arg[] = { "YO" };
 
        String result = MessageFormat.format(test, arg);
 
        System.out.println("test = " + test);
        System.out.println("result = " + result);
    }
}


 

Citation :

In strings, single quotes can be used to quote the "{" (curly brace) if necessary. A real single quote is represented by ''.


 
 
C'est une raison pour virer mes single quotes boordaÿl!!??? [:toad666]


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
Reply

Marsh Posté le 23-09-2002 à 19:23:01   

Reply

Marsh Posté le 23-09-2002 à 20:16:54    

bhen si, tu dois mettre deux ' pour en avoir une vraie.. d'après ce que je comprends au message :??:


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 23-09-2002 à 20:20:46    

ouais mais ça suxxe:)


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
Reply

Marsh Posté le 23-09-2002 à 20:25:08    

mailto:abuse@java.sun.com

Reply

Marsh Posté le 23-09-2002 à 20:28:32    

gm_superstar a écrit a écrit :

mailto:abuse@java.sun.com



ouais c clair! :fou:


Message édité par --greg-- le 23-09-2002 à 20:28:40

---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
Reply

Marsh Posté le 23-09-2002 à 20:30:21    

--greg-- a écrit a écrit :

ouais mais ça suxxe:)




' -> ca rulez
'' -> ca sux
 :??:  
 :heink:  
 :sarcastic:  
 :pt1cable:  
 :o  
 [:tonton_benou]

Reply

Marsh Posté le 23-09-2002 à 20:34:49    

benou j'avoue ne pas comprendre tout la portée de ton message :D


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
Reply

Marsh Posté le 23-09-2002 à 20:43:38    

--greg-- a écrit a écrit :

benou j'avoue ne pas comprendre tout la portée de ton message :D




rholala ....
 
allez, une traduction exprès pour toi :
 
tu trouve que ...
' -> ca rulez
... mettre un quote c'est bien ...
'' -> ca sux
... alors qu'en mettre deux c'est nul ...
 :??:  
... c'est ca ? ...
 :heink:  
... t'es bizare toi ! ...
 :sarcastic:  
... vraiment t'as de ces idées ...
 :pt1cable:  
... des idées de oufs, je vous dis ! ...
 :o  
... rhooooo vraiment, critiquer java pour ca ...
 [:tonton_benou]
... java ca se critique pas : c'est bien !
 
ca me parraissait clair pourtant ... :D


Message édité par benou le 23-09-2002 à 20:44:19
Reply

Marsh Posté le 23-09-2002 à 20:44:51    

mouahahahahaha  :D

Reply

Marsh Posté le 23-09-2002 à 20:50:06    

arf:))
 
nan mais bon
quand tu perds 3h à pester contre le code de qqun d'autre et qu'au bout du compte tu te rends compte que c'est parce que ce [:toad666] utilile MessageFormat et que tu découvres que MessageFormat vire les ' dans tes Strings... surtout que j'ai une tripatouillée de Strings (des XPATH pour tout te dire) que j'emploie a different endroits. J'ai pris l'habitude d'y utiliser des ' pour arreter de me faire chier à devoir échapper les " là dedans. Et le truc de l'autre là dont j'ai eu besoin ben j'avais des xpath à lui passer, et on se mangeait des null pointer et tout ça... (Oui parce que mossieur gère superbement les exceptions... un vrai plaisir - sans System.out.println partout + debugger j'aurais jamais trouvé!)
 
 :gun:


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
Reply

Marsh Posté le 23-09-2002 à 20:50:06   

Reply

Marsh Posté le 23-09-2002 à 20:51:18    

nan, nan, je suis d'accord, MessageFormat pue du rond comme un diplodocus diharéique qui se néglige!! En plus, tu peux mettre que 10 {}, et c'est chiant Ouala....C'est pas argumenté, je sais, mais cette classe me fait chier depuis trop longtemps..

Reply

Marsh Posté le 23-09-2002 à 20:54:36    

je comprend mieux :)
 
mais comme dirait tonton, "c'est parce que y en a qui codent avec les pieds que java il faut critiquer" :D

Reply

Marsh Posté le 23-09-2002 à 20:55:24    

gfive a écrit a écrit :

nan, nan, je suis d'accord, MessageFormat pue du rond comme un diplodocus diharéique qui se néglige!! En plus, tu peux mettre que 10 {}, et c'est chiant Ouala....C'est pas argumenté, je sais, mais cette classe me fait chier depuis trop longtemps..




je sais pas je l'ai jamais utilisé  :o

Reply

Marsh Posté le 23-09-2002 à 20:57:03    

gfive a écrit a écrit :

nan, nan, je suis d'accord, MessageFormat pue du rond comme un diplodocus diharéique qui se néglige!! En plus, tu peux mettre que 10 {}, et c'est chiant Ouala....C'est pas argumenté, je sais, mais cette classe me fait chier depuis trop longtemps..



belle métaphore :o
 


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
Reply

Marsh Posté le 24-09-2002 à 09:31:26    

--greg-- a écrit a écrit :

arf:))
 
nan mais bon
quand tu perds 3h à pester contre le code de qqun d'autre et qu'au bout du compte tu te rends compte que c'est parce que ce [:toad666] utilile MessageFormat et que tu découvres que MessageFormat vire les ' dans tes Strings... surtout que j'ai une tripatouillée de Strings (des XPATH pour tout te dire) que j'emploie a different endroits. J'ai pris l'habitude d'y utiliser des ' pour arreter de me faire chier à devoir échapper les " là dedans. Et le truc de l'autre là dont j'ai eu besoin ben j'avais des xpath à lui passer, et on se mangeait des null pointer et tout ça... (Oui parce que mossieur gère superbement les exceptions... un vrai plaisir - sans System.out.println partout + debugger j'aurais jamais trouvé!)
 
 :gun:  




 
je précise que je ne suis PAS la personne en question [:ddr555]


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 24-09-2002 à 10:48:02    

Pour info, ce n'est pas 10, mais 6 paramètres maxi que tu peux utiliser dans MessageFormat. :sarcastic:  
Et je suppose que les concepteurs de cette classe ont prévu un échappement sur les apostrophes pour pouvoir imprimer la chaîne "{0}" sans que celle-ci soit interprétée comme "la valeur du premier argument".
 
Il n'en reste pas moins que le principe de cette classe est incroyablement souple et puissant. Pour l'avoir utilisé (le principe, pas toujours la classe), je ne comprends pas pourquoi il est si peu utilisé par les programmeurs Java, surtout chez ceux qui doivent générer des pelletées de HTML ou XML. Ca simplifierait et éclaircierait leur code d'une manière incoyable (sans compter la facilité de maintenance : il n'est plus forcément nécessaire de modifier le code Java quand le HTML ou le XML change, si le texte du format est placé dans un fichier de ressources).
 
Mais puisque cette classe a des limites rapidement atteintes, rien ne t'empêche d'en écrire une qui ferait globalement la même chose, mais sans l'échappement des apostrophes et sans limitation du nombre de paramètres. Ce n'est pas très compliqué (dans les 200-300 lignes de code avec un bon Javadoc).
 
J'avais fait ça dans le temps (malheureusement, le code est copyrighté), et même, cette classe était autrement plus puissante : les paramètres pouvaient eux-mêmes être des tableaux ou des collections ou des tableaux, que le format pouvait parcourir. Avec ça, il n'y avait rien de plus facile que de fabriquer une liste séparée par des virgules, par exemple, à partir d'un tableau ou d'une collection d'objets en argument.
Tous les programmeurs de mon équipe, une fois qu'ils y avaient goûté, ne pouvaient plus s'en passer...
 
edit> L'orthographe correcte pour l'affection du diplodocus est "diarrhéique".  :non:


Message édité par BifaceMcLeOD le 24-09-2002 à 10:51:54
Reply

Marsh Posté le 24-09-2002 à 12:08:11    

ben oui et alors?  :sarcastic: j'ai bien le droit de me défouler nan?


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
Reply

Marsh Posté le 24-09-2002 à 12:18:21    

Greg, ça n'a pas grand chose à voir, mais j'ai vu ds la classe que t'as posté que ton template de classe (dans Idea), est comme ça :

/**  
*  
*  
* @author     --greg--  
* @author     $Author: $ (last edit)  
* @version    $Revision:  $  
* @created    Sep 23, 2002  
*/


 
"$Author: $" et "$Revision:  $" sot remplacés par quoi ? comment tu paramètre ça ?

Reply

Marsh Posté le 24-09-2002 à 12:21:50    

El_Gringo a écrit a écrit :

Greg, ça n'a pas grand chose à voir, mais j'ai vu ds la classe que t'as posté que ton template de classe (dans Idea), est comme ça :

/**  
*  
*  
* @author     --greg--  
* @author     $Author: $ (last edit)  
* @version    $Revision:  $  
* @created    Sep 23, 2002  
*/


 
"$Author: $" et "$Revision:  $" sot remplacés par quoi ? comment tu paramètre ça ?



c'est remplacé respectivement par le username et le n° de version avec cvs


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
Reply

Marsh Posté le 24-09-2002 à 12:24:34    

--greg-- a écrit a écrit :

c'est remplacé respectivement par le username et le n° de version avec cvs




 
haaaa, j'me doutais qu'il y avait du CVS derrière ça...
Merci.

Reply

Marsh Posté le 24-09-2002 à 16:52:26    

BifaceMcLeOD a écrit a écrit :

Pour info, ce n'est pas 10, mais 6 paramètres maxi que tu peux utiliser dans MessageFormat.
 




 
Bah alors, la javadoc est fausse :
 

Code :
  1. The argument is a number from 0 to 9, which corresponds to the arguments presented in an array to be formatted.

 
 
Sinon, je suis d'accord avec toi, c'est puissant et excessivement utile, mais j'aime pas la manière dont il faut l'utliser, en fait, c tout.

Reply

Marsh Posté le 24-09-2002 à 17:24:27    

Oui, je confirme, le JavaDoc est faux. En fait, je ne sais pas trop pourquoi MessageFormat ignore les arguments qu'on lui donne au-delà du 6ème (alors qu'il a les attributs internes qu'il faut pour en supporter 10). Sans doute un bug, qui n'a jamais été corrigé depuis que cette classe existe.
C'est d'ailleurs pour cette raison qu'avec un de mes collègues, nous avions réécrit notre propre classe de formattage, qui s'était étoffée par la suite.


Message édité par BifaceMcLeOD le 24-09-2002 à 17:26:07
Reply

Marsh Posté le 24-09-2002 à 17:37:39    

euh  
 
 

Code :
  1. import java.text.MessageFormat;
  2. /**
  3. *
  4. *
  5. * @author     --greg--
  6. * @author     $Author: $ (last edit)
  7. * @version    $Revision:  $
  8. * @created    Sep 24, 2002
  9. */
  10. public class TestMessageFormat {
  11.     public static void main(String[] args) {
  12.         String test = "*{0}**{1}**{2}**{3}**{4}**{5}**{6}**{7}**{8}**{9}*";
  13.         String[] arr = {"a", "b", "c", "d", "e", "f", "g", "h", "i", "j"};
  14.         System.out.println("test = " + test);
  15.         System.out.println("MessageFormat.format(test, arr) = " + MessageFormat.format(test, arr));
  16.     }
  17. }

ça marche pourtant...
 

Citation :

test = *{0}**{1}**{2}**{3}**{4}**{5}**{6}**{7}**{8}**{9}*
MessageFormat.format(test, arr) = *a**b**c**d**e**f**g**h**i**j*


Message édité par --greg-- le 24-09-2002 à 17:38:27

---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
Reply

Marsh Posté le 24-09-2002 à 19:11:38    

Yep !  :heink:
Tu utilises quel JDK ? Sur mon poste, avec le JDK 1.4.1, effectivement, c'est OK. Mais je suis sûr que ça eût planté (mais c'est vrai qu'on utilisait le JDK 1.2, à l'époque : le JDK 1.3 n'existait pas encore).


Message édité par BifaceMcLeOD le 24-09-2002 à 19:11:56
Reply

Marsh Posté le 24-09-2002 à 19:42:53    

BifaceMcLeOD a écrit a écrit :

Yep !  :heink:
Tu utilises quel JDK ? Sur mon poste, avec le JDK 1.4.1, effectivement, c'est OK. Mais je suis sûr que ça eût planté (mais c'est vrai qu'on utilisait le JDK 1.2, à l'époque : le JDK 1.3 n'existait pas encore).



1.3.1_02 ou _03 ché plus


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
Reply

Marsh Posté le 25-09-2002 à 14:25:46    

El_Gringo a écrit a écrit :

 
 
haaaa, j'me doutais qu'il y avait du CVS derrière ça...
Merci.




 
Pour une entreprise, c gratuit CVS ?

Reply

Marsh Posté le 25-09-2002 à 14:37:33    

beh ouais
enfin y'en a surement des payants si tu veux:D


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
Reply

Marsh Posté le 25-09-2002 à 16:03:05    

--greg-- a écrit a écrit :

beh ouais
enfin y'en a surement des payants si tu veux:D




 
Bah non, c cool. Merci.

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed