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

Langage Java Discussion :

Instancier un type avec son nom contenu dans un String


Sujet :

Langage Java

  1. #1
    Futur Membre du Club
    Inscrit en
    Mai 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 4
    Par défaut Instancier un type avec son nom contenu dans un String
    Bien le bonjour tout le monde,
    J'aimerais utiliser le contenu de mon string pour instancier une variable..
    Je m'explique mon String contient par exemple "Int" et j'aimerai pouvoir utiliser ce contenu pour déclarer une variable, est-ce possible ??

    Enfin pour plus de précision en fait j'ai une méthode qui recoit comme argument un object. Cet object est suseptible de contenir plusieurs types (String, int, String[],Value,...) Et j'aimerai rendre mon pgm plus jolie en créant ses types dynamiquement. (Je dois ensuite les sérialiser mais j'ai besoin de les enregistrer avec leurs types de base et non pas en object)

    Merci beaucoup.
    (je pédale dans la choucroute pour le moment )

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2007
    Messages : 132
    Par défaut
    Pourrais-tu être plus précis ?

    Si tu serialize et désérialize ton object il sera automatiquement construit par Java.

  3. #3
    Futur Membre du Club
    Inscrit en
    Mai 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 4
    Par défaut
    Il faut absolument que je passe à ma méthode qui effectue la sérialisation le bon type (String, int,...) et pas mon type object. J'utilise enfait l'API JCR et ma méthode pour ajouter des métadonnées à un Node n'accepte pas mes Object...


    node.setProperty(propName,propValue);

    propName est le nom de ma propriété (métadonnées) et propValue est sa valeur. (Ne pouvant pas être object).
    Donc il faudrait soit que j'instancie mes variables suivant le type de l'object ou que je le cast lors de l'envoi.

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2007
    Messages : 132
    Par défaut
    Qu'elles sont les objects acceptés par la méthode node.setProperty ?

  5. #5
    Futur Membre du Club
    Inscrit en
    Mai 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 4
    Par défaut
    InputStream,Value,Value[],String,String[],int,Date.
    Je pense que c'est tout.
    Mais mon problème c'est qu'avec mon Object je récupère son type mais que faire avec?

    String type=obj.getClass().getName() ;

    Avec ça j'ai le nom (en String) de mon type mais je vois pas comment l'utiliser convenablement..

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    122
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2007
    Messages : 122
    Par défaut
    Salut,

    une idée tout bête serait de faire un test sur le getName(), avec un switch case .. ensuite tu n'as plus qu'à instancier un objet du bon type ..

  7. #7
    Membre expérimenté
    Inscrit en
    Janvier 2006
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 257
    Par défaut
    Perso la manière de faire n'est pas des plus adapter normalement tu n'a pas se genre de chose a faire tu doit savoir a l'avance ce que ton programme doit instancier comme variable pour fonctionner j'ai du mal a comprendre dans quel cas on peux avoir se genre de chose à faire ... Je sens plus un prblm de conception ... ptete je me trompe

    ++

  8. #8
    Futur Membre du Club
    Inscrit en
    Mai 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 4
    Par défaut
    J'ai ma couche DAO qui accède à ma BD et pour ajouter des métadonnées à un document présent dans la BD j'utilise la méthode updateNode() de ma couche DAO. Cette méthode est appelé par la couche sevice de l'application et donc par le client plus haut. Donc losqu'un client veux ajouter une métadonnée il donne son nom (toujours string) et sa valeur (plusieurs type possible). de la je passe la valeur dans un object pour ne pas me retrouver avec 10 méthodes UpdateNode() ayant chacune leurs types de parametres et donc dans cette méthode updateNode je recoit un object qu'il me faut analyser pour l'enregistrer correctement.

    Merci Nikk0 je pense me résigner à faire comme cela pour le moment...
    Et... java c'est du rock'n roll

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 27/03/2013, 11h55
  2. Réponses: 8
    Dernier message: 19/07/2010, 16h50
  3. Instancier une classe avec son nom
    Par Arrakis dans le forum Langage
    Réponses: 2
    Dernier message: 11/09/2009, 18h57
  4. [PHP 5.0] instancier une classe avec son nom dans une variable
    Par Nnay_ dans le forum Langage
    Réponses: 1
    Dernier message: 12/02/2009, 13h49
  5. Instancier une classe dont le nom est contenu dans une String
    Par fyque dans le forum Général Python
    Réponses: 15
    Dernier message: 13/06/2008, 13h33

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