IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Groovy Java Discussion :

Curieuses asymétries en Groovy


Sujet :

Groovy Java

  1. #1
    Membre chevronné
    Avatar de professeur shadoko
    Homme Profil pro
    retraité nostalgique Java SE
    Inscrit en
    Juillet 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : retraité nostalgique Java SE

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 257
    Points : 1 855
    Points
    1 855
    Par défaut Curieuses asymétries en Groovy
    bon pour une application Java j'ai des Properties (donc des chaînes) qui peuvent représenter des données complexes comme des listes ou des Maps.
    Comme j'ai aussi du Groovy quelque part: ces données sont représentées avec la syntaxe Groovy.
    donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    valeurs = [max:120,min:0,name:'slider']
    là où les choses me paraissent étranges c'est si je fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    String stringValue = DefaultGroovyMethods.toMapString(myMap);
    je vais obtenir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    [max:120,min:0,name:slider]
    donc une chaîne qui ne sera pas correcte lorsque je vais l'analyser à nouveau par Groovy!!!
    (il manque les apostrophes autour de la chaine)

    Pourquoi donc les services ne sont pas symétriques?
    par exemple si on fait un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    int val = 34;
    String strVal = String.valueOf(val) ;
    int anotherVal = Integer.parseInt(strVal);
    on récupère bien la même valeur (principe que j'appelle "symétrie" ici)

    du coup me voilà obligé de tout réécrire "à la main"...
    (une méthode qui génère une chaîne qui redonne la même valeur si analysée par Groovy)

    Y a une autre solution?
    J'ai des principes: je peux toujours trouver une bonne raison pour les contredire .... mais j'ai des principes!
    (mon excellent bouquin sur Java : https://eska-publishing.com/fr/livre...822407076.html)

  2. #2
    Membre confirmé
    Avatar de Khaled.Noordin
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    354
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 354
    Points : 497
    Points
    497
    Billets dans le blog
    1
    Par défaut
    Salut
    dans ta problématique il me semble que tu ne fais pas la différence entre String et GString voici un lien, comme je n'ai pas trop compris ton soucis c'est le mieux que je puisse faire.

  3. #3
    Membre chevronné
    Avatar de professeur shadoko
    Homme Profil pro
    retraité nostalgique Java SE
    Inscrit en
    Juillet 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : retraité nostalgique Java SE

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 257
    Points : 1 855
    Points
    1 855
    Par défaut
    Citation Envoyé par Khaled.Noordin Voir le message
    Salut
    dans ta problématique il me semble que tu ne fais pas la différence entre String et GString voici un lien, comme je n'ai pas trop compris ton soucis c'est le mieux que je puisse faire.
    Uuurgh....
    j'ai du mal m'expliquer car je ne vois pas le rapport avec ma question.....

    quand on fait les choses bien dans un certains nombres de codes des méthodes comme toString() et String.valueOf(valeur) sont symétriques: si tu crée une chaîne à partir de la valeur tu peux retrouver la valeur à partir de la chaîne. C'est pas vrai partout mais c'est vrai pour les Numbers par exemple.
    ça devrait être vrai pour les List et Maps en Groovy mais ça ne l'est pas!
    Donc soit quelque chose m'échappe (je n'ai pas utilisé la bonne méthode pour créer la chaine) soit c'est une grosse erreur de conception.
    bon j'ai écrit un code ad hoc pour résoudre ça mais ça m'énerve un tantinet.
    J'ai des principes: je peux toujours trouver une bonne raison pour les contredire .... mais j'ai des principes!
    (mon excellent bouquin sur Java : https://eska-publishing.com/fr/livre...822407076.html)

Discussions similaires

  1. A quoi peut servir Groovy ?
    Par FranT dans le forum Groovy
    Réponses: 14
    Dernier message: 09/11/2011, 16h10
  2. [Sondage] Groovy ou non ?
    Par jeromek dans le forum Groovy
    Réponses: 6
    Dernier message: 23/04/2010, 20h45
  3. Réponses: 2
    Dernier message: 25/04/2007, 20h55
  4. Excel :erreur curieuse
    Par spileo dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 07/09/2006, 12h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo